设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7529|回复: 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 ( {5 w2 ^" Q" ~; f
应该不行吧,这是系统自带的语言,和C不一样
, j+ F5 `. U. ?' E/ u
好的,谢谢
发表于 2015-4-16 19:56:47 | 显示全部楼层
可以调用C++。
 楼主| 发表于 2015-4-17 09:01:43 | 显示全部楼层
sefule 发表于 2015-4-16 19:56
- y% ^$ G, ]3 U0 n可以调用C++。
; n! l  V5 z' [* j/ H; W4 h8 C: D. N& k
请问如何调用呢?求详细过程,另外C++程序结构比较复杂,显示main函数,然后要调用几个函数,请问要放到一个Method对象里还是拆成好几个Method对象呢?
发表于 2015-4-17 19:12:24 | 显示全部楼层
  1. is' g% N8 s4 g; g7 i3 j4 U$ J  R. B
  2.         r:real; file:string;4 E  X% t. X: I) F( l+ `7 ?8 A
  3. do+ E) O. x, @7 Q
  4.         openConsole;# L3 n! u  {7 x0 R! r

  5. ( C$ w# R. f. l- r
  6.         /*  o6 o0 ?6 [+ O, d
  7.         file := to_str(ApplicationHome, "\Plant Simulation\C-Interface\cinterf",
    7 ~* K+ F/ h' V$ Y# T  a; E
  8.                                    when is64BitApplication then 64 else 32,
      X$ ]7 L8 k7 Y
  9.                                    "bit.dll");
    3 w* n$ I2 M( ?# _$ n& T/ ^/ r
  10.                            */7 M' v- j" a) y- e& O
  11.         file := "C:\Users\sun\Documents\Visual Studio 2010\Projects\sg64dll\x64\Debug\sg64dll.dll";4 ]0 Z7 G1 k  c/ k1 h
  12.         local j := loadLibrary(file);1 _: P: \- w) R9 x  k( V

  13. ) |6 Z2 v% I' i- Z7 [& A9 W" b
  14.         if j > 0 then. D  a' ~1 e3 t3 t  N# y1 u
  15.                 print getLoadedLibrary(j)," is loaded.";, V& B: J9 O, k1 N; P
  16. ! S) O/ T3 u8 ?
  17.                 r := callLibrary(j, "calcSin", PI/6);% u$ J" z7 D) v
  18.                 promptmessage(to_str("sin(PI/6) = ", r));* s$ B9 y4 u$ L/ B
  19.                
    $ y. u" [, I5 v& j
  20.                 local str:string;
    , s6 y* S; w+ E9 X4 C
  21.                 str := "I'm OK!";0 ~" Y) e# B0 a9 t# ]$ D& G2 B
  22.                 str := callLibrary(j,"resetStr",str);
    6 R( h7 q& ~8 R9 M) x
  23.                 promptmessage(str);
    8 ]; U: {4 m7 ~) Z  W4 _6 ~
  24.                 - z) u/ U& Y7 I
  25.                 callLibrary(j, "listAccess", Tablefile);$ Q$ o4 }- b/ n+ u/ D; S8 @
  26.                
    ! F) O! S9 F' h  A# D, ], }, G
  27.                 print "Unloading: ", freeLibrary(j);
    ) n, h% z  s& D
  28.         end;/ h; U6 J3 o: G/ i8 X/ Q6 u3 G# D
  29. end;+ r, C9 h, C$ ~/ c& H2 g
复制代码
 楼主| 发表于 2015-4-18 15:35:36 | 显示全部楼层
sefule 发表于 2015-4-17 19:12
% Y5 ]6 {: M7 z6 G; f
不好意思我还是想问一下,就是在do里先输入C++程序所在的位置然后直接把C++里的程序复制到后面么?% Z4 Y2 |8 W5 d9 A+ ?' x! [
发表于 2015-4-18 17:49:45 | 显示全部楼层
将C++生成dll,然后引入l调用。
! F8 J/ ~# J; d' g0 f注意接口参数传递。( @) C: O& u8 S6 r( B
& D, P9 C3 t8 \# ^3 J
感觉你理解有偏差,是调用c++的dll。而不是CLR似的混合编程。
发表于 2015-4-18 20:39:23 | 显示全部楼层
不明白你为什么需要调用C++程序,正常是不需要用到的。
 楼主| 发表于 2015-4-19 15:32:35 | 显示全部楼层
dongshui8558 发表于 2015-4-18 20:39 / N; H% c# _& n, R+ d3 X2 F) X9 S9 Y
不明白你为什么需要调用C++程序,正常是不需要用到的。
; m  l0 |7 N! i( O  r; p& F7 H( y
就是我现在手上有一个算法,然后已经有了一个C程序,我想仿真一下这个算法,如果能直接导进去就不用编simtalk语言了
发表于 2015-4-19 16:17:58 | 显示全部楼层
plant自带的例子里面有教你方法,你好好看看。
 楼主| 发表于 2015-4-23 12:52:25 | 显示全部楼层
dongshui8558 发表于 2015-4-19 16:17 % S- y0 [) m9 Z! D8 w
plant自带的例子里面有教你方法,你好好看看。

% s+ r+ a% L( c! e8 }" j$ W哦哦是《em-plant仿真技术教程》么?还是《plant simulation 生产系统与仿真》呢?麻烦提点一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-27 23:06 , Processed in 0.018265 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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