设为首页收藏本站

最大的系统仿真与系统优化公益交流社区

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7725|回复: 11

[求助]

    [复制链接]
发表于 2015-4-15 09:44:16 | 显示全部楼层 |阅读模式
请问可以直接把C++程序导入到emplant中么?急
发表于 2015-4-15 11:15:03 | 显示全部楼层
应该不行吧,这是系统自带的语言,和C不一样
 楼主| 发表于 2015-4-15 13:42:37 | 显示全部楼层
kunny 发表于 2015-4-15 11:15
) _! k0 j4 ]0 ]8 R2 q应该不行吧,这是系统自带的语言,和C不一样
  R; D9 ?' q  d% x0 O: D
好的,谢谢
发表于 2015-4-16 19:56:47 | 显示全部楼层
可以调用C++。
 楼主| 发表于 2015-4-17 09:01:43 | 显示全部楼层
sefule 发表于 2015-4-16 19:56 - K4 J# I0 v" Y' H/ s& E( H
可以调用C++。
$ g; L# K3 l( T+ V
请问如何调用呢?求详细过程,另外C++程序结构比较复杂,显示main函数,然后要调用几个函数,请问要放到一个Method对象里还是拆成好几个Method对象呢?
发表于 2015-4-17 19:12:24 | 显示全部楼层
  1. is
    . v, @. k& S) X! g
  2.         r:real; file:string;9 i6 w8 j$ L# w7 G. j
  3. do2 e. q1 w, D# \4 D4 M5 L
  4.         openConsole;
    . O8 P% }# e  `3 H* S
  5. ' U: i5 s, ?) }
  6.         /*
    5 O, z: v+ l! }0 O( P7 u" l
  7.         file := to_str(ApplicationHome, "\Plant Simulation\C-Interface\cinterf",5 v; i9 ~6 l, z' `+ e2 E
  8.                                    when is64BitApplication then 64 else 32,( g: n* Z1 f, d3 u3 p2 d6 {& L
  9.                                    "bit.dll");
    - L" ^& a2 k' K4 O; Z
  10.                            */* n9 P- J# S/ v6 D: L$ y8 e
  11.         file := "C:\Users\sun\Documents\Visual Studio 2010\Projects\sg64dll\x64\Debug\sg64dll.dll";
    1 u+ N; f1 i6 B2 x2 L
  12.         local j := loadLibrary(file);
    4 ~! P; L) i1 B7 Q! o+ {

  13. ; K: ]6 R+ W  r
  14.         if j > 0 then( k% y! K. k- O# {& ^4 L
  15.                 print getLoadedLibrary(j)," is loaded.";( b8 Z8 q1 S9 o6 A

  16. ' i7 ~6 H/ c9 j- H+ z' `3 q. M) i) G
  17.                 r := callLibrary(j, "calcSin", PI/6);4 |! E; ~$ B( R; k
  18.                 promptmessage(to_str("sin(PI/6) = ", r));6 _+ {8 N( T2 g3 h$ T/ ~% R
  19.                
      y% R5 H7 q8 q4 A2 L: l, J" K& z
  20.                 local str:string;
    * C/ U' u5 Y8 K+ {! \8 G
  21.                 str := "I'm OK!";6 j9 v5 I  ]% `- N
  22.                 str := callLibrary(j,"resetStr",str);1 q5 b; T+ E3 y1 e
  23.                 promptmessage(str);2 N, n3 }# X1 k3 {
  24.                 % x# J7 Q7 a2 d8 P% o9 x. t0 ]2 a3 ?0 M' }
  25.                 callLibrary(j, "listAccess", Tablefile);
    : M4 i1 z+ Q+ n1 {# u+ ]
  26.                
    5 D- W! _: g2 e  ]
  27.                 print "Unloading: ", freeLibrary(j);
    : E! F+ d) s5 ]
  28.         end;* @& U- b$ t$ z/ r2 v9 T
  29. end;( K" Q4 v2 `1 n7 q6 ~
复制代码
 楼主| 发表于 2015-4-18 15:35:36 | 显示全部楼层
sefule 发表于 2015-4-17 19:12

+ Q1 F' l1 [9 Y) R8 C不好意思我还是想问一下,就是在do里先输入C++程序所在的位置然后直接把C++里的程序复制到后面么?
2 V2 t" |* b, k- i/ o9 m4 R
发表于 2015-4-18 17:49:45 | 显示全部楼层
将C++生成dll,然后引入l调用。
, a2 \6 n' ~, z% n/ V9 C$ |! a注意接口参数传递。
! p. m; w( y6 D- Z* A5 W) Q' F% L8 k5 d# A
感觉你理解有偏差,是调用c++的dll。而不是CLR似的混合编程。
发表于 2015-4-18 20:39:23 | 显示全部楼层
不明白你为什么需要调用C++程序,正常是不需要用到的。
 楼主| 发表于 2015-4-19 15:32:35 | 显示全部楼层
dongshui8558 发表于 2015-4-18 20:39 ' ~& W9 `, P. g7 |( B! h5 E
不明白你为什么需要调用C++程序,正常是不需要用到的。

( d. _! Z% ?2 U) u! {就是我现在手上有一个算法,然后已经有了一个C程序,我想仿真一下这个算法,如果能直接导进去就不用编simtalk语言了
发表于 2015-4-19 16:17:58 | 显示全部楼层
plant自带的例子里面有教你方法,你好好看看。
 楼主| 发表于 2015-4-23 12:52:25 | 显示全部楼层
dongshui8558 发表于 2015-4-19 16:17 . v' \$ l% R, ?3 f2 ~' t; G
plant自带的例子里面有教你方法,你好好看看。

- {( M0 t" T" R* ~+ o/ u  U哦哦是《em-plant仿真技术教程》么?还是《plant simulation 生产系统与仿真》呢?麻烦提点一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|手机版|SimulWay 道于仿真   

GMT+8, 2026-7-15 15:47 , Processed in 0.018872 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表