设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7828|回复: 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
. R# g, x$ u" Q4 O* @) `应该不行吧,这是系统自带的语言,和C不一样
5 Z0 W% g: L( w
好的,谢谢
发表于 2015-4-16 19:56:47 | 显示全部楼层
可以调用C++。
 楼主| 发表于 2015-4-17 09:01:43 | 显示全部楼层
sefule 发表于 2015-4-16 19:56 % X( s2 ]! s8 W* ^/ {* F+ B. e6 I
可以调用C++。
* ^( Z" h2 p$ ]4 W. ?% }
请问如何调用呢?求详细过程,另外C++程序结构比较复杂,显示main函数,然后要调用几个函数,请问要放到一个Method对象里还是拆成好几个Method对象呢?
发表于 2015-4-17 19:12:24 | 显示全部楼层
  1. is
    # v2 H+ `3 T6 z: j- Q( A) z4 }0 B
  2.         r:real; file:string;+ U3 C4 s$ K9 ?" b
  3. do
    ( r- R. v; b! r9 y* R! V, F
  4.         openConsole;, P, K* Q6 ]+ `8 u- T3 @
  5. 5 `' }, u1 n) l$ F) H5 [, [( s$ |
  6.         /*
    0 F' M. k# S8 q( A& o
  7.         file := to_str(ApplicationHome, "\Plant Simulation\C-Interface\cinterf",
    0 l5 _& @% ]) c/ V3 d1 i  k
  8.                                    when is64BitApplication then 64 else 32,
    $ ^& t% T8 H' L
  9.                                    "bit.dll");
    1 q5 J/ t8 z4 p# ]5 m6 g+ s" m
  10.                            */
    ( Q7 T5 ^9 G/ f
  11.         file := "C:\Users\sun\Documents\Visual Studio 2010\Projects\sg64dll\x64\Debug\sg64dll.dll";
    % z  I6 J7 b+ \  \# M3 s0 g
  12.         local j := loadLibrary(file);
    ' ?, M9 q% v# q5 m5 ?% w
  13. , E7 f' e& a. t4 C5 T
  14.         if j > 0 then
    ) n. w: Y- x0 o# G" e  c, n5 \
  15.                 print getLoadedLibrary(j)," is loaded.";" c' J! x$ ?' k# l9 v# I
  16. 7 [5 C% \* Y3 S# y2 J
  17.                 r := callLibrary(j, "calcSin", PI/6);+ P6 A6 c$ p  X/ U
  18.                 promptmessage(to_str("sin(PI/6) = ", r));: P% s0 B- h3 J7 Z
  19.                
    * S/ [1 J9 A9 I# h+ F; X
  20.                 local str:string;
    9 o0 ?, `* T( h7 _' a( O/ x* q
  21.                 str := "I'm OK!";
    / P$ @' X& k: o% P
  22.                 str := callLibrary(j,"resetStr",str);
    4 l* r) \+ P4 t4 f. O0 z
  23.                 promptmessage(str);
    ; ^) f) u. o0 t, o3 T+ s6 x
  24.                 / m# Y/ L0 D) ?7 x: J6 K
  25.                 callLibrary(j, "listAccess", Tablefile);
    , G* i& Q9 ?: }9 H/ ^
  26.                 & Y% o% a4 Z5 l; p2 W
  27.                 print "Unloading: ", freeLibrary(j);- q& k: w* R0 x8 ?2 R4 @& U
  28.         end;
    3 y0 v9 W5 R+ c' {" N9 b) w' K) Q4 i
  29. end;
    9 G/ h- h  X) Q& N9 ~
复制代码
 楼主| 发表于 2015-4-18 15:35:36 | 显示全部楼层
sefule 发表于 2015-4-17 19:12
( N; a+ K) Q6 @: [. M1 ?; q% \
不好意思我还是想问一下,就是在do里先输入C++程序所在的位置然后直接把C++里的程序复制到后面么?- a7 S1 o: t4 q  T
发表于 2015-4-18 17:49:45 | 显示全部楼层
将C++生成dll,然后引入l调用。
8 L  r$ n9 U; x$ [- ~注意接口参数传递。
% u- l3 U: C5 f) i1 r4 L' h" {9 c: y7 T# H  z* p
感觉你理解有偏差,是调用c++的dll。而不是CLR似的混合编程。
发表于 2015-4-18 20:39:23 | 显示全部楼层
不明白你为什么需要调用C++程序,正常是不需要用到的。
 楼主| 发表于 2015-4-19 15:32:35 | 显示全部楼层
dongshui8558 发表于 2015-4-18 20:39
- c+ A8 v: ]4 R: Q' G' e4 E* ]不明白你为什么需要调用C++程序,正常是不需要用到的。

& j  w: a; l' ~6 J! f7 [- J/ M5 N' e就是我现在手上有一个算法,然后已经有了一个C程序,我想仿真一下这个算法,如果能直接导进去就不用编simtalk语言了
发表于 2015-4-19 16:17:58 | 显示全部楼层
plant自带的例子里面有教你方法,你好好看看。
 楼主| 发表于 2015-4-23 12:52:25 | 显示全部楼层
dongshui8558 发表于 2015-4-19 16:17 9 y* J: S( G  Q. v5 s! B" ?
plant自带的例子里面有教你方法,你好好看看。
/ h6 v& F8 L2 Q$ x; q$ p! Q
哦哦是《em-plant仿真技术教程》么?还是《plant simulation 生产系统与仿真》呢?麻烦提点一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-23 00:53 , Processed in 0.017895 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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