设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5368|回复: 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
  b9 o8 v, T# \应该不行吧,这是系统自带的语言,和C不一样
5 r8 u, J# H( o
好的,谢谢
发表于 2015-4-16 19:56:47 | 显示全部楼层
可以调用C++。
 楼主| 发表于 2015-4-17 09:01:43 | 显示全部楼层
sefule 发表于 2015-4-16 19:56 ; B9 n2 m& C! Y, \
可以调用C++。
- D) w1 S- [" i: t$ M" \
请问如何调用呢?求详细过程,另外C++程序结构比较复杂,显示main函数,然后要调用几个函数,请问要放到一个Method对象里还是拆成好几个Method对象呢?
发表于 2015-4-17 19:12:24 | 显示全部楼层
  1. is. C' @, ?4 S( j( ]& `# F
  2.         r:real; file:string;0 e+ `2 O% M" i8 Z+ B+ B7 g
  3. do8 U  M; k. w7 F5 @& w+ |' J
  4.         openConsole;
    6 Z- m: t8 F/ h" q( C
  5. 8 Q' `- |& a0 e& |$ n
  6.         /*% `% l7 t$ V5 U' }
  7.         file := to_str(ApplicationHome, "\Plant Simulation\C-Interface\cinterf",, [* T8 d) O9 A' U, [8 K; w
  8.                                    when is64BitApplication then 64 else 32,
    : f0 e8 J( I6 w* ]. s; ?3 P
  9.                                    "bit.dll");
    4 Y+ ^# ?; {9 |. J
  10.                            */
    ) K. }; M# ?" E2 y
  11.         file := "C:\Users\sun\Documents\Visual Studio 2010\Projects\sg64dll\x64\Debug\sg64dll.dll";5 E/ B6 A. u5 r8 F
  12.         local j := loadLibrary(file);5 f6 s, S) c9 h5 x  I' L( L9 b4 s
  13. * }) v& l4 Q" {: G# w) k6 k. R) p+ b
  14.         if j > 0 then- ?* Y, ?8 k6 w1 a& q! G( q
  15.                 print getLoadedLibrary(j)," is loaded.";
      E3 O: K5 l, m$ w7 Y
  16. ; `' o4 \% P1 A7 A$ Q# G9 p
  17.                 r := callLibrary(j, "calcSin", PI/6);; ?9 L' Q3 ], F* @0 k/ n! z3 s* h
  18.                 promptmessage(to_str("sin(PI/6) = ", r));' l) d+ H! @  Q% K, S7 A
  19.                 - q4 @* j" _5 R  @' d  d1 s; n1 R
  20.                 local str:string;
    ' U8 {2 _! o- s$ e8 f
  21.                 str := "I'm OK!";) A' [# ]! E- w
  22.                 str := callLibrary(j,"resetStr",str);  K1 o! f: X6 k2 E
  23.                 promptmessage(str);8 F# K# S4 A1 a2 c
  24.                
    7 T. C$ l4 z6 R' c
  25.                 callLibrary(j, "listAccess", Tablefile);
    0 A4 w* M' Y8 `2 s1 n1 ^$ s1 \
  26.                
    ' ^4 u$ }' v& e, Q
  27.                 print "Unloading: ", freeLibrary(j);
    ' y/ v/ @. U) U' j  W! L$ b
  28.         end;. I# e! ]5 E. x2 ^, l0 F# \
  29. end;
    7 D" o1 O' p' C& @" p
复制代码
 楼主| 发表于 2015-4-18 15:35:36 | 显示全部楼层
sefule 发表于 2015-4-17 19:12
+ t+ q$ r  a$ t4 v( Q" a
不好意思我还是想问一下,就是在do里先输入C++程序所在的位置然后直接把C++里的程序复制到后面么?# \7 _- [1 }5 W! ]0 x
发表于 2015-4-18 17:49:45 | 显示全部楼层
将C++生成dll,然后引入l调用。
6 `* }/ [9 [0 d# z( Q# {注意接口参数传递。
  b; q% u/ n4 ^0 b% f- I
: ]5 m  G. y. w; Y感觉你理解有偏差,是调用c++的dll。而不是CLR似的混合编程。
发表于 2015-4-18 20:39:23 | 显示全部楼层
不明白你为什么需要调用C++程序,正常是不需要用到的。
 楼主| 发表于 2015-4-19 15:32:35 | 显示全部楼层
dongshui8558 发表于 2015-4-18 20:39 / r2 N8 |6 S' a! Z6 o
不明白你为什么需要调用C++程序,正常是不需要用到的。

9 `# ?5 a. b# d% d; Y- ]5 G, Q就是我现在手上有一个算法,然后已经有了一个C程序,我想仿真一下这个算法,如果能直接导进去就不用编simtalk语言了
发表于 2015-4-19 16:17:58 | 显示全部楼层
plant自带的例子里面有教你方法,你好好看看。
 楼主| 发表于 2015-4-23 12:52:25 | 显示全部楼层
dongshui8558 发表于 2015-4-19 16:17
$ h  E  d4 R* C1 F' a( A) O+ J/ Dplant自带的例子里面有教你方法,你好好看看。
2 Z+ O/ t0 y% S! F3 O4 t$ G4 F" |
哦哦是《em-plant仿真技术教程》么?还是《plant simulation 生产系统与仿真》呢?麻烦提点一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-7-9 15:13 , Processed in 0.015651 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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