设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6929|回复: 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
4 D% [* s' M1 }( w! \应该不行吧,这是系统自带的语言,和C不一样
4 {/ b! U3 i. `
好的,谢谢
发表于 2015-4-16 19:56:47 | 显示全部楼层
可以调用C++。
 楼主| 发表于 2015-4-17 09:01:43 | 显示全部楼层
sefule 发表于 2015-4-16 19:56
$ G( r- ?6 w. R8 Y- U" a0 N: q可以调用C++。

- b& T  |# H7 w; {2 Q; D请问如何调用呢?求详细过程,另外C++程序结构比较复杂,显示main函数,然后要调用几个函数,请问要放到一个Method对象里还是拆成好几个Method对象呢?
发表于 2015-4-17 19:12:24 | 显示全部楼层
  1. is
    6 o' |  K  f* a  Z( X' Y' ?
  2.         r:real; file:string;
    " H+ w3 `# F+ e0 [0 U
  3. do
    ) R: Z! X/ T! \# q! K& L
  4.         openConsole;
    * I2 G. M0 @4 I, A, D, G  ?5 ?' _
  5. 8 x# q, u9 p- k0 j3 A
  6.         /*
    . l) k, e! H9 O% |
  7.         file := to_str(ApplicationHome, "\Plant Simulation\C-Interface\cinterf",3 r5 H- e2 V  p) f7 Z
  8.                                    when is64BitApplication then 64 else 32,; c7 Q) O  |7 c3 t6 R; X. d3 h9 }
  9.                                    "bit.dll");
    1 }+ Z1 b8 |* t- ?6 D$ r
  10.                            */) g0 C/ Q: _) {: D( P+ h* b  y
  11.         file := "C:\Users\sun\Documents\Visual Studio 2010\Projects\sg64dll\x64\Debug\sg64dll.dll";" ]3 e* b1 n; g* H7 V
  12.         local j := loadLibrary(file);6 {2 @/ ^8 J& t" M5 D9 }( a4 Q
  13. ( u4 W. Q7 {$ L8 A6 _) V2 ~
  14.         if j > 0 then, [0 `: m3 N- x- t: }0 |# L$ z
  15.                 print getLoadedLibrary(j)," is loaded.";+ H5 Z5 X; J3 b, ~
  16. % ]; G/ {+ B' A- v, p5 i
  17.                 r := callLibrary(j, "calcSin", PI/6);( [; ^* _7 r$ h8 J( O  n
  18.                 promptmessage(to_str("sin(PI/6) = ", r));
    ' y0 l) F: i  F
  19.                
    % ?! m, m1 d' \& e
  20.                 local str:string;5 ?# c+ B  X6 G9 @' t1 s: E
  21.                 str := "I'm OK!";
    + N7 T6 q' U9 p" F, A8 |
  22.                 str := callLibrary(j,"resetStr",str);
      ^  h4 s8 e: A. i5 j/ m/ o
  23.                 promptmessage(str);
    + Q0 A9 ]! P  g
  24.                 9 g5 z) [8 [0 e  k
  25.                 callLibrary(j, "listAccess", Tablefile);
    / E; a' }# ~' r" v
  26.                
    0 B1 |8 D" N2 J
  27.                 print "Unloading: ", freeLibrary(j);
    1 {/ S# K; w: _$ U2 u
  28.         end;
    ) N4 [# Z: l! h" ^$ p4 O# w
  29. end;
    : K% U3 {) r. c! e+ q
复制代码
 楼主| 发表于 2015-4-18 15:35:36 | 显示全部楼层
sefule 发表于 2015-4-17 19:12
1 e& N+ O& d! C
不好意思我还是想问一下,就是在do里先输入C++程序所在的位置然后直接把C++里的程序复制到后面么?
% d% j9 ~5 k- D* u* O& U  b
发表于 2015-4-18 17:49:45 | 显示全部楼层
将C++生成dll,然后引入l调用。& t: G4 T" x3 Y  v' J& ?& F
注意接口参数传递。. V3 D& ^  s. b/ W

' N; @- o" I* M$ Y- R1 J感觉你理解有偏差,是调用c++的dll。而不是CLR似的混合编程。
发表于 2015-4-18 20:39:23 | 显示全部楼层
不明白你为什么需要调用C++程序,正常是不需要用到的。
 楼主| 发表于 2015-4-19 15:32:35 | 显示全部楼层
dongshui8558 发表于 2015-4-18 20:39 * x2 k6 x3 L( X
不明白你为什么需要调用C++程序,正常是不需要用到的。

4 T- O  _" J% }& o3 K就是我现在手上有一个算法,然后已经有了一个C程序,我想仿真一下这个算法,如果能直接导进去就不用编simtalk语言了
发表于 2015-4-19 16:17:58 | 显示全部楼层
plant自带的例子里面有教你方法,你好好看看。
 楼主| 发表于 2015-4-23 12:52:25 | 显示全部楼层
dongshui8558 发表于 2015-4-19 16:17
) G: W" A! |: e; y9 N' r( Eplant自带的例子里面有教你方法,你好好看看。
3 i: `" z7 A/ e  [0 k5 `( [' g! k/ N
哦哦是《em-plant仿真技术教程》么?还是《plant simulation 生产系统与仿真》呢?麻烦提点一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-16 12:56 , Processed in 0.022002 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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