设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6965|回复: 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
- m9 p  W8 {' h$ G5 ~5 W6 B应该不行吧,这是系统自带的语言,和C不一样

$ X/ i8 Y! X9 Z1 l6 m" t: U( t" _好的,谢谢
发表于 2015-4-16 19:56:47 | 显示全部楼层
可以调用C++。
 楼主| 发表于 2015-4-17 09:01:43 | 显示全部楼层
sefule 发表于 2015-4-16 19:56
0 u( V9 L3 D' P+ Y4 g% j可以调用C++。

, A1 j/ q' K6 |4 b请问如何调用呢?求详细过程,另外C++程序结构比较复杂,显示main函数,然后要调用几个函数,请问要放到一个Method对象里还是拆成好几个Method对象呢?
发表于 2015-4-17 19:12:24 | 显示全部楼层
  1. is
    4 f7 A% O4 Z/ N# X" }6 s. v( R, E
  2.         r:real; file:string;& l' G! ~, Z% T1 _! [/ w( T
  3. do6 `7 r0 A# n2 k* C: N1 A
  4.         openConsole;6 H" t: n2 s) o5 @* M2 Y
  5. 0 O3 b6 x1 t/ n  x9 j
  6.         /*8 ]2 m, J  l# z) k9 W8 {, d
  7.         file := to_str(ApplicationHome, "\Plant Simulation\C-Interface\cinterf",
    # A& K" f3 ]0 Y0 O+ {+ I
  8.                                    when is64BitApplication then 64 else 32,4 L/ j6 j& b4 l+ v& y) Q
  9.                                    "bit.dll");
    ' X5 z  d8 ?' X: {( A
  10.                            */9 q* C. u* w: S) {; X5 \, T) h
  11.         file := "C:\Users\sun\Documents\Visual Studio 2010\Projects\sg64dll\x64\Debug\sg64dll.dll";. O+ W+ c/ l. v/ U: N
  12.         local j := loadLibrary(file);
    , ^, @9 K7 V6 ]1 H( H0 X

  13. 5 f. J7 Q6 n  ?9 r  k  M1 D
  14.         if j > 0 then- \: ^. Z! ]4 D0 A# Q/ [' y
  15.                 print getLoadedLibrary(j)," is loaded.";
    $ f5 A. U6 P1 v! A3 A! J/ d: w# G

  16. : a7 T3 M6 U" }! H( {
  17.                 r := callLibrary(j, "calcSin", PI/6);
    ) K4 h) _) \, k$ d8 K( Y
  18.                 promptmessage(to_str("sin(PI/6) = ", r));- z6 X: t1 V' f6 T3 U  Y
  19.                
    4 G2 [# h4 t  n( h8 E1 v
  20.                 local str:string;
    5 }  K! E2 q! r+ t) u" s
  21.                 str := "I'm OK!";4 w, Z" J2 [2 y0 @/ u% j6 Y
  22.                 str := callLibrary(j,"resetStr",str);
    7 i. w& J9 R3 _, q
  23.                 promptmessage(str);
    + j3 `* ]: S3 {: v3 p& ~
  24.                
    7 x* y. X, A& B6 x  C3 u' i3 G: D8 d
  25.                 callLibrary(j, "listAccess", Tablefile);7 k0 C# E* B: [, ]: X
  26.                 ) J9 i" M7 D7 J8 z- D- v
  27.                 print "Unloading: ", freeLibrary(j);
    $ n7 A& W4 r$ }; V' o) ]; t+ ]
  28.         end;2 ~/ e; R2 @* u' N1 y- m+ A, Q
  29. end;# F& {1 W2 i' q5 I& }. f2 \$ }. {
复制代码
 楼主| 发表于 2015-4-18 15:35:36 | 显示全部楼层
sefule 发表于 2015-4-17 19:12
$ k, a8 R! G0 T! o1 ]+ O
不好意思我还是想问一下,就是在do里先输入C++程序所在的位置然后直接把C++里的程序复制到后面么?8 g. p" v1 X+ x7 F$ }3 T: A8 g
发表于 2015-4-18 17:49:45 | 显示全部楼层
将C++生成dll,然后引入l调用。
/ _! c. p$ `. f( S6 J0 ~4 O注意接口参数传递。5 G# Q' q* k4 N  ]8 L/ i% F

8 c/ D) ^1 [) k$ I3 U' u感觉你理解有偏差,是调用c++的dll。而不是CLR似的混合编程。
发表于 2015-4-18 20:39:23 | 显示全部楼层
不明白你为什么需要调用C++程序,正常是不需要用到的。
 楼主| 发表于 2015-4-19 15:32:35 | 显示全部楼层
dongshui8558 发表于 2015-4-18 20:39 % R4 D3 L- d2 r: j! ^$ n$ H+ Y. C
不明白你为什么需要调用C++程序,正常是不需要用到的。
+ V" Z- V8 \6 i$ I% D$ s0 u
就是我现在手上有一个算法,然后已经有了一个C程序,我想仿真一下这个算法,如果能直接导进去就不用编simtalk语言了
发表于 2015-4-19 16:17:58 | 显示全部楼层
plant自带的例子里面有教你方法,你好好看看。
 楼主| 发表于 2015-4-23 12:52:25 | 显示全部楼层
dongshui8558 发表于 2015-4-19 16:17 % F# \/ A, i8 I0 d
plant自带的例子里面有教你方法,你好好看看。
0 n3 t4 [) X3 O" N, b7 c9 s
哦哦是《em-plant仿真技术教程》么?还是《plant simulation 生产系统与仿真》呢?麻烦提点一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-25 07:19 , Processed in 0.021996 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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