设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6358|回复: 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
9 L# l% v% a8 t3 e8 E应该不行吧,这是系统自带的语言,和C不一样
0 m/ Z( Y2 @& Q; U5 v( Y
好的,谢谢
发表于 2015-4-16 19:56:47 | 显示全部楼层
可以调用C++。
 楼主| 发表于 2015-4-17 09:01:43 | 显示全部楼层
sefule 发表于 2015-4-16 19:56
4 F, N/ @  o+ R1 P  q+ E; }! n可以调用C++。

5 _7 O8 q4 |7 i% ?0 x7 v请问如何调用呢?求详细过程,另外C++程序结构比较复杂,显示main函数,然后要调用几个函数,请问要放到一个Method对象里还是拆成好几个Method对象呢?
发表于 2015-4-17 19:12:24 | 显示全部楼层
  1. is) f7 E/ \$ [6 ~
  2.         r:real; file:string;
    4 l- D% M/ k3 _9 ]
  3. do) G: ^  H" R) m# {
  4.         openConsole;
    5 k" B; d3 {# U2 h) v
  5.   S$ z; j3 A& h9 U9 K- g9 P7 L
  6.         /*0 `. w. F8 @  b4 i
  7.         file := to_str(ApplicationHome, "\Plant Simulation\C-Interface\cinterf",
    * D$ Z2 k* V5 J4 R1 x
  8.                                    when is64BitApplication then 64 else 32,
    ; l, h' F% [; p8 K/ n/ ~" _$ y
  9.                                    "bit.dll");* ]' }0 v3 m9 J- ^3 _, {3 U+ X
  10.                            */
    & ?8 P0 H" Y3 i: f5 G
  11.         file := "C:\Users\sun\Documents\Visual Studio 2010\Projects\sg64dll\x64\Debug\sg64dll.dll";* V( R  _; n5 w" C: L" P
  12.         local j := loadLibrary(file);2 ~1 b4 ]( _  A& x
  13. ) k6 t- j6 ?' k3 j3 X8 V( X; _
  14.         if j > 0 then
    & R2 r* w: f# f4 I
  15.                 print getLoadedLibrary(j)," is loaded.";) r0 H3 Z1 f- t3 o4 O
  16. 2 \  C' K/ m7 d) f! d0 o
  17.                 r := callLibrary(j, "calcSin", PI/6);
    ! f0 J7 z3 l- r. Y, u' q( T
  18.                 promptmessage(to_str("sin(PI/6) = ", r));- {3 G, L: V, C
  19.                 4 p1 x, n. V) _' R# {
  20.                 local str:string;! U8 T, T+ {; r  W$ d+ B/ {
  21.                 str := "I'm OK!";: D7 d+ `8 ~8 j8 f' W6 V1 l
  22.                 str := callLibrary(j,"resetStr",str);( R  y- S0 E- U, Z
  23.                 promptmessage(str);
    0 N9 ]6 V3 b+ n$ P3 ^" {
  24.                
    . S+ ~4 x3 E# r; P+ @: W
  25.                 callLibrary(j, "listAccess", Tablefile);  U+ O' ^6 d' p( p
  26.                 0 T+ P4 m& M# L% q
  27.                 print "Unloading: ", freeLibrary(j);
    ' A% S6 W. ~" K! R8 x0 C9 S9 @
  28.         end;' b* W$ Z- P. S' e* L+ A
  29. end;* v8 I. x- V/ B; `" w
复制代码
 楼主| 发表于 2015-4-18 15:35:36 | 显示全部楼层
sefule 发表于 2015-4-17 19:12
- F. O: E: U. {* ~$ Q: J5 x) J1 i" D- b
不好意思我还是想问一下,就是在do里先输入C++程序所在的位置然后直接把C++里的程序复制到后面么?* y* P1 L. K6 |9 q# }# W
发表于 2015-4-18 17:49:45 | 显示全部楼层
将C++生成dll,然后引入l调用。
. r& T8 a9 J6 v8 c  ]$ `2 d注意接口参数传递。
! W$ Y' j1 i: |4 R" F) X
- ~! g, T. {: L8 n感觉你理解有偏差,是调用c++的dll。而不是CLR似的混合编程。
发表于 2015-4-18 20:39:23 | 显示全部楼层
不明白你为什么需要调用C++程序,正常是不需要用到的。
 楼主| 发表于 2015-4-19 15:32:35 | 显示全部楼层
dongshui8558 发表于 2015-4-18 20:39 9 Y% O/ G4 _7 N6 g  q
不明白你为什么需要调用C++程序,正常是不需要用到的。
- g7 W% E5 l  D
就是我现在手上有一个算法,然后已经有了一个C程序,我想仿真一下这个算法,如果能直接导进去就不用编simtalk语言了
发表于 2015-4-19 16:17:58 | 显示全部楼层
plant自带的例子里面有教你方法,你好好看看。
 楼主| 发表于 2015-4-23 12:52:25 | 显示全部楼层
dongshui8558 发表于 2015-4-19 16:17
' i/ F2 ~3 _7 Z7 b+ I9 V: Z& splant自带的例子里面有教你方法,你好好看看。

0 o0 r$ ~" V, Z# |( E6 z哦哦是《em-plant仿真技术教程》么?还是《plant simulation 生产系统与仿真》呢?麻烦提点一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-12-8 08:49 , Processed in 0.019096 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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