设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6591|回复: 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
, T/ Z+ n. Y' m8 D应该不行吧,这是系统自带的语言,和C不一样

2 p. c6 |! r; ~, Z  {3 N5 Y好的,谢谢
发表于 2015-4-16 19:56:47 | 显示全部楼层
可以调用C++。
 楼主| 发表于 2015-4-17 09:01:43 | 显示全部楼层
sefule 发表于 2015-4-16 19:56
9 R1 k& f9 D. R' a4 F可以调用C++。

% d/ b. }1 V& m6 N1 D8 L请问如何调用呢?求详细过程,另外C++程序结构比较复杂,显示main函数,然后要调用几个函数,请问要放到一个Method对象里还是拆成好几个Method对象呢?
发表于 2015-4-17 19:12:24 | 显示全部楼层
  1. is; _) c* ]0 j8 Q/ P
  2.         r:real; file:string;
    ; G9 r7 r9 c2 {8 P+ p9 m3 [& V
  3. do  l% R) P: o' s5 l
  4.         openConsole;
    . v0 b1 i6 c4 ^. s

  5. 6 f* F! Q6 N: g7 @1 D, ]
  6.         /*
    3 k0 i4 Z6 O, I1 N& p! T& w- P) P
  7.         file := to_str(ApplicationHome, "\Plant Simulation\C-Interface\cinterf",3 A: X: B7 H9 c: Z5 v, w
  8.                                    when is64BitApplication then 64 else 32,5 V0 z# l/ U, W- ~2 z: M& y
  9.                                    "bit.dll");& g0 v7 t$ O& _  f) O
  10.                            */
    9 D7 y6 _, v8 N# v5 U8 M
  11.         file := "C:\Users\sun\Documents\Visual Studio 2010\Projects\sg64dll\x64\Debug\sg64dll.dll";
    8 R" B0 ^" a5 ?+ Z/ }
  12.         local j := loadLibrary(file);
    ! I; @% t1 f. p7 k* p3 U

  13. % \$ u8 X; @7 V1 Y
  14.         if j > 0 then' S6 Y, ^+ a; [8 h4 ^
  15.                 print getLoadedLibrary(j)," is loaded.";
    . L4 Y3 x( o% E1 k' ?2 T  o

  16. $ h. P6 r4 I1 V' R- b0 n
  17.                 r := callLibrary(j, "calcSin", PI/6);
    " L. C; o  i9 w$ a% s' A' o; R
  18.                 promptmessage(to_str("sin(PI/6) = ", r));% T% u* }! O5 s5 [3 C
  19.                 1 A+ _; R9 h) x) Z1 L$ b0 i- u* F; ~4 m5 Z
  20.                 local str:string;5 o6 W) C# J) w
  21.                 str := "I'm OK!";, r, G2 j2 G8 d  F
  22.                 str := callLibrary(j,"resetStr",str);
    ) ]! r& p# g3 ~/ l1 h: Y3 `! D
  23.                 promptmessage(str);, p& s1 S9 W* ?  ^
  24.                
    # H; t; O6 ^" p0 X; i+ x
  25.                 callLibrary(j, "listAccess", Tablefile);& j' {# v! u* R. c- c/ _. J, \" y
  26.                 " T4 u6 u+ w2 k' h: e7 e
  27.                 print "Unloading: ", freeLibrary(j);
    ) e9 S* l- f$ K; d% w( o* P) y
  28.         end;
    3 f- y8 q2 a+ f7 P
  29. end;
    4 U6 f  c9 E" U$ `" O
复制代码
 楼主| 发表于 2015-4-18 15:35:36 | 显示全部楼层
sefule 发表于 2015-4-17 19:12
+ ]  l' l# p* I4 ?* p2 d
不好意思我还是想问一下,就是在do里先输入C++程序所在的位置然后直接把C++里的程序复制到后面么?
0 \5 N/ n& P2 U5 }6 f8 u' ]
发表于 2015-4-18 17:49:45 | 显示全部楼层
将C++生成dll,然后引入l调用。# p1 i$ k+ d' Z. i3 b
注意接口参数传递。
9 }6 S/ ~5 v; }. s' E8 l
: ]3 h( a  C: y& q8 z3 k# Y感觉你理解有偏差,是调用c++的dll。而不是CLR似的混合编程。
发表于 2015-4-18 20:39:23 | 显示全部楼层
不明白你为什么需要调用C++程序,正常是不需要用到的。
 楼主| 发表于 2015-4-19 15:32:35 | 显示全部楼层
dongshui8558 发表于 2015-4-18 20:39
( b, o. H$ f, r. q% i* T' B! p$ Z不明白你为什么需要调用C++程序,正常是不需要用到的。

7 h" I/ w/ r3 M" M, ?就是我现在手上有一个算法,然后已经有了一个C程序,我想仿真一下这个算法,如果能直接导进去就不用编simtalk语言了
发表于 2015-4-19 16:17:58 | 显示全部楼层
plant自带的例子里面有教你方法,你好好看看。
 楼主| 发表于 2015-4-23 12:52:25 | 显示全部楼层
dongshui8558 发表于 2015-4-19 16:17
: t# p- U+ [6 P# A. b$ r5 Q: ^0 y9 kplant自带的例子里面有教你方法,你好好看看。
6 G  ]8 n5 @5 l+ i
哦哦是《em-plant仿真技术教程》么?还是《plant simulation 生产系统与仿真》呢?麻烦提点一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-1-18 09:39 , Processed in 0.018989 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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