设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7290|回复: 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
; S( ~2 N; v2 R+ m  J4 H+ O& }应该不行吧,这是系统自带的语言,和C不一样

; i  z% p' @$ b: H9 f好的,谢谢
发表于 2015-4-16 19:56:47 | 显示全部楼层
可以调用C++。
 楼主| 发表于 2015-4-17 09:01:43 | 显示全部楼层
sefule 发表于 2015-4-16 19:56
$ e+ B4 Z" ~* l2 K9 B# x+ T% P可以调用C++。

6 ^: q' w# F# |$ T/ Q请问如何调用呢?求详细过程,另外C++程序结构比较复杂,显示main函数,然后要调用几个函数,请问要放到一个Method对象里还是拆成好几个Method对象呢?
发表于 2015-4-17 19:12:24 | 显示全部楼层
  1. is
    : H! ~6 q* e: y/ C6 `/ m. M
  2.         r:real; file:string;6 L. e# P7 I1 `7 \/ c% T1 i6 G
  3. do+ [) L4 x% Y3 @  ~5 `
  4.         openConsole;% P" j+ M9 [0 ]' h' I! d
  5. 6 L3 S. k6 d1 Y& p$ j6 S
  6.         /*2 K' `6 R" j! `# t; e) \, B+ z( R  a
  7.         file := to_str(ApplicationHome, "\Plant Simulation\C-Interface\cinterf",- z7 O4 g: c/ a9 \/ Q! \
  8.                                    when is64BitApplication then 64 else 32,2 C5 r3 ~9 F8 i2 F
  9.                                    "bit.dll");
    % U0 d$ Z3 _  W( P& m& V
  10.                            */0 |, s2 N4 }$ e0 i* q' b! |6 ~
  11.         file := "C:\Users\sun\Documents\Visual Studio 2010\Projects\sg64dll\x64\Debug\sg64dll.dll";- H- a2 z& Y8 o6 w, Y$ i
  12.         local j := loadLibrary(file);" ]5 v5 e1 v3 ^
  13. " v4 G8 O& b1 q7 C# B- p$ H
  14.         if j > 0 then6 A. e  n' H8 F
  15.                 print getLoadedLibrary(j)," is loaded.";
    # \" {3 _- J' _9 S) {" C- p

  16. 3 l& ]/ Z& ]3 t6 C: o8 i
  17.                 r := callLibrary(j, "calcSin", PI/6);0 P& c2 f. v# P! P# u7 t' C, L: D
  18.                 promptmessage(to_str("sin(PI/6) = ", r));! |: f' k) n" b- B+ {& I' T) r
  19.                 ( K' S' D' Y- C4 e1 H. a
  20.                 local str:string;5 U* A' S" L8 V& V$ A1 a5 M) V
  21.                 str := "I'm OK!";5 s! \% l$ e: L: Q( A7 w
  22.                 str := callLibrary(j,"resetStr",str);
    * A# ?8 }+ |. _6 t8 b: D
  23.                 promptmessage(str);
    2 m$ i  Q6 Y! s
  24.                
    , h& [$ p* `) h1 S
  25.                 callLibrary(j, "listAccess", Tablefile);
    9 e! j3 \& D. l2 d' [
  26.                 ( j' X% J& a! b- t1 L  J
  27.                 print "Unloading: ", freeLibrary(j);
    ! I8 ~/ S0 q: d% A. Q
  28.         end;6 X! H2 o3 F7 K" x
  29. end;6 w& K8 }( c( |
复制代码
 楼主| 发表于 2015-4-18 15:35:36 | 显示全部楼层
sefule 发表于 2015-4-17 19:12
& [" f* s' D! d# [9 P* a9 I
不好意思我还是想问一下,就是在do里先输入C++程序所在的位置然后直接把C++里的程序复制到后面么?
* g" R. \% ~2 _  g
发表于 2015-4-18 17:49:45 | 显示全部楼层
将C++生成dll,然后引入l调用。
) M8 [- m- v; n: \. w注意接口参数传递。
" q# X0 w6 z) p8 J" t3 |$ K
$ {# X5 ?) x" x8 T! ]5 h) c感觉你理解有偏差,是调用c++的dll。而不是CLR似的混合编程。
发表于 2015-4-18 20:39:23 | 显示全部楼层
不明白你为什么需要调用C++程序,正常是不需要用到的。
 楼主| 发表于 2015-4-19 15:32:35 | 显示全部楼层
dongshui8558 发表于 2015-4-18 20:39 ( M/ T+ Q- M1 Y1 I
不明白你为什么需要调用C++程序,正常是不需要用到的。
: R; p: y# f6 O* n
就是我现在手上有一个算法,然后已经有了一个C程序,我想仿真一下这个算法,如果能直接导进去就不用编simtalk语言了
发表于 2015-4-19 16:17:58 | 显示全部楼层
plant自带的例子里面有教你方法,你好好看看。
 楼主| 发表于 2015-4-23 12:52:25 | 显示全部楼层
dongshui8558 发表于 2015-4-19 16:17 2 h% ]- F( ^  i, ^: l
plant自带的例子里面有教你方法,你好好看看。

5 {/ b8 `0 ~* E1 D; |+ |哦哦是《em-plant仿真技术教程》么?还是《plant simulation 生产系统与仿真》呢?麻烦提点一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-16 10:28 , Processed in 0.022535 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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