设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5302|回复: 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 $ M# k8 g  d7 l- b
应该不行吧,这是系统自带的语言,和C不一样

' S" L$ M  F; g" g* r7 m. l# A- Y好的,谢谢
发表于 2015-4-16 19:56:47 | 显示全部楼层
可以调用C++。
 楼主| 发表于 2015-4-17 09:01:43 | 显示全部楼层
sefule 发表于 2015-4-16 19:56 4 z2 v! N  Z" `* [. M
可以调用C++。

5 B: A( a, h  R: n" n- R  b请问如何调用呢?求详细过程,另外C++程序结构比较复杂,显示main函数,然后要调用几个函数,请问要放到一个Method对象里还是拆成好几个Method对象呢?
发表于 2015-4-17 19:12:24 | 显示全部楼层
  1. is
    $ H) n0 K3 O/ e$ t9 c
  2.         r:real; file:string;: K/ b. N* Z7 ^4 ~
  3. do) S% v  C8 F: k) m& D" y
  4.         openConsole;
    . s' |9 M4 ]0 ]( P* ^

  5. 5 |2 K. U. @- P! z6 v2 J) f5 j
  6.         /*
    ' l. u' p9 U3 N& J) @. v3 u
  7.         file := to_str(ApplicationHome, "\Plant Simulation\C-Interface\cinterf",
    / E1 f9 i. I: |7 W5 U; b% ^% c
  8.                                    when is64BitApplication then 64 else 32,
    6 T# _$ x7 W. n9 v% S' Z4 ?5 I
  9.                                    "bit.dll");( D5 V! K6 X; y
  10.                            */
    & K) M( g; }5 B, ?
  11.         file := "C:\Users\sun\Documents\Visual Studio 2010\Projects\sg64dll\x64\Debug\sg64dll.dll";* S0 B6 ]8 P+ _" M
  12.         local j := loadLibrary(file);; Y! m: I% ~2 G2 o1 Q' d$ s
  13. + O$ M/ T  W1 z
  14.         if j > 0 then
      F4 ~' E$ O: p4 W$ F* f* ]
  15.                 print getLoadedLibrary(j)," is loaded.";7 E  R  Q* v5 {, J( X/ d( \8 @
  16. 6 E+ h2 o2 c5 i- t+ B6 o2 w
  17.                 r := callLibrary(j, "calcSin", PI/6);* R) M6 e4 o+ |
  18.                 promptmessage(to_str("sin(PI/6) = ", r));9 v/ w, S7 e% n, s
  19.                 # a1 n* o9 ^8 d/ S
  20.                 local str:string;
    7 ]- i* s! d/ B3 j6 ^
  21.                 str := "I'm OK!";  X2 S  O; t* G3 P2 D5 W0 E+ A
  22.                 str := callLibrary(j,"resetStr",str);
    " ~4 K  m1 |6 k
  23.                 promptmessage(str);
    & I* J  b% ~# l8 e8 S$ j* w7 d
  24.                
    0 r& j5 z0 F8 j4 u# s3 k
  25.                 callLibrary(j, "listAccess", Tablefile);* {. ^: r7 N' T) N
  26.                
    8 w8 j; b0 a3 ?( Q
  27.                 print "Unloading: ", freeLibrary(j);
      c7 e. w7 \4 S' A" J+ d/ N
  28.         end;$ j! X& ]. G) W4 n% I4 g7 T' t
  29. end;
    4 }; ?* m" j: p! u. }: T( C
复制代码
 楼主| 发表于 2015-4-18 15:35:36 | 显示全部楼层
sefule 发表于 2015-4-17 19:12
4 d4 z7 R' C6 q7 U
不好意思我还是想问一下,就是在do里先输入C++程序所在的位置然后直接把C++里的程序复制到后面么?
0 E& q7 Q: r2 W" U6 b1 s
发表于 2015-4-18 17:49:45 | 显示全部楼层
将C++生成dll,然后引入l调用。. c" V* `/ T: t2 X( K6 }( n
注意接口参数传递。1 c+ |3 B6 E$ h/ A# q

4 k/ {( r( p; g( Z" O4 M! q( A$ B感觉你理解有偏差,是调用c++的dll。而不是CLR似的混合编程。
发表于 2015-4-18 20:39:23 | 显示全部楼层
不明白你为什么需要调用C++程序,正常是不需要用到的。
 楼主| 发表于 2015-4-19 15:32:35 | 显示全部楼层
dongshui8558 发表于 2015-4-18 20:39 . O9 q- \4 l" p( \) U$ F
不明白你为什么需要调用C++程序,正常是不需要用到的。

; n/ j& C3 T9 C  J- \就是我现在手上有一个算法,然后已经有了一个C程序,我想仿真一下这个算法,如果能直接导进去就不用编simtalk语言了
发表于 2015-4-19 16:17:58 | 显示全部楼层
plant自带的例子里面有教你方法,你好好看看。
 楼主| 发表于 2015-4-23 12:52:25 | 显示全部楼层
dongshui8558 发表于 2015-4-19 16:17 % b* ^  [5 \3 c3 j9 [
plant自带的例子里面有教你方法,你好好看看。

+ }/ C7 h5 H: t" ]哦哦是《em-plant仿真技术教程》么?还是《plant simulation 生产系统与仿真》呢?麻烦提点一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-7-2 21:24 , Processed in 0.016000 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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