设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7609|回复: 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
+ D1 G- s: K$ e2 ]应该不行吧,这是系统自带的语言,和C不一样
1 G' y% ~* s2 q+ \
好的,谢谢
发表于 2015-4-16 19:56:47 | 显示全部楼层
可以调用C++。
 楼主| 发表于 2015-4-17 09:01:43 | 显示全部楼层
sefule 发表于 2015-4-16 19:56
  W( x. S' f5 r% e  ?+ R; Y7 Q, w可以调用C++。

0 `0 b# x8 k0 h6 _请问如何调用呢?求详细过程,另外C++程序结构比较复杂,显示main函数,然后要调用几个函数,请问要放到一个Method对象里还是拆成好几个Method对象呢?
发表于 2015-4-17 19:12:24 | 显示全部楼层
  1. is
    ' j% W% p( |% w2 U
  2.         r:real; file:string;
    5 r, v7 \* ^! l# f) z
  3. do
    * z7 R) M% q2 ]! G4 ~
  4.         openConsole;. Q7 |; |, V" t/ k/ i

  5. ) N. X! `2 e% ^: ^5 I5 H0 E
  6.         /*
    7 F+ o5 m3 i; m$ Y/ U2 [1 U  {
  7.         file := to_str(ApplicationHome, "\Plant Simulation\C-Interface\cinterf",
    * l+ B/ d8 g; E5 f2 ?9 D
  8.                                    when is64BitApplication then 64 else 32,
    6 M" F* l; ?* w1 M- a
  9.                                    "bit.dll");
    ! d8 }  |8 j7 O& N4 x& A
  10.                            */' x, i2 `6 O* G
  11.         file := "C:\Users\sun\Documents\Visual Studio 2010\Projects\sg64dll\x64\Debug\sg64dll.dll";
    2 h0 w* x$ y. R0 A1 x# y1 A
  12.         local j := loadLibrary(file);
    : I& E$ T% k& |! Z9 B* {
  13. 8 {7 `9 N, f6 A! S
  14.         if j > 0 then; l  A7 O2 [  j% D. d
  15.                 print getLoadedLibrary(j)," is loaded.";5 {$ a8 i" X4 e) a
  16.   s: r1 R' F2 J0 C$ F
  17.                 r := callLibrary(j, "calcSin", PI/6);+ Q! I' |0 _5 L+ o7 q0 r9 {
  18.                 promptmessage(to_str("sin(PI/6) = ", r));
    ( k3 L, L* o; P- X7 M/ i
  19.                
    " S4 e8 T+ k, i: i- p. p
  20.                 local str:string;
    ! R2 x$ B5 V* u1 Q  X) h6 q
  21.                 str := "I'm OK!";* H# O9 \. e6 ?  B  l; K  r7 {4 b4 O
  22.                 str := callLibrary(j,"resetStr",str);
    6 i! b) R3 f5 b# Z# R8 K. b
  23.                 promptmessage(str);7 t! D  j7 K8 g6 e! S. K
  24.                
    9 g4 h$ d1 j$ G& w7 A0 ]
  25.                 callLibrary(j, "listAccess", Tablefile);# }! A8 [, h) j* A( Y$ v
  26.                
    ( A6 c0 U- l) {% y: z8 j9 w
  27.                 print "Unloading: ", freeLibrary(j);! [* s9 m) ^1 O; K' K
  28.         end;
    0 t$ ?( Y+ _7 Y* B! Z
  29. end;
    " j+ y. E8 j! O
复制代码
 楼主| 发表于 2015-4-18 15:35:36 | 显示全部楼层
sefule 发表于 2015-4-17 19:12
+ \( o  q2 a7 c  T* Y. _
不好意思我还是想问一下,就是在do里先输入C++程序所在的位置然后直接把C++里的程序复制到后面么?9 ^% p! q5 M- [
发表于 2015-4-18 17:49:45 | 显示全部楼层
将C++生成dll,然后引入l调用。* S1 O" E, }. O$ ]/ r' _8 M7 D
注意接口参数传递。& t: y& l# R1 I& z- x9 r
2 N, x  D" j' [5 b0 H# ]
感觉你理解有偏差,是调用c++的dll。而不是CLR似的混合编程。
发表于 2015-4-18 20:39:23 | 显示全部楼层
不明白你为什么需要调用C++程序,正常是不需要用到的。
 楼主| 发表于 2015-4-19 15:32:35 | 显示全部楼层
dongshui8558 发表于 2015-4-18 20:39 / y) D0 o& M3 s$ E1 q$ t
不明白你为什么需要调用C++程序,正常是不需要用到的。
$ s2 \3 v( m3 `8 @2 H# i
就是我现在手上有一个算法,然后已经有了一个C程序,我想仿真一下这个算法,如果能直接导进去就不用编simtalk语言了
发表于 2015-4-19 16:17:58 | 显示全部楼层
plant自带的例子里面有教你方法,你好好看看。
 楼主| 发表于 2015-4-23 12:52:25 | 显示全部楼层
dongshui8558 发表于 2015-4-19 16:17
$ n5 S  [/ x! j; T1 a/ g  [! wplant自带的例子里面有教你方法,你好好看看。

9 {1 ^6 v# Q7 K. f3 @0 V; A哦哦是《em-plant仿真技术教程》么?还是《plant simulation 生产系统与仿真》呢?麻烦提点一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-8 02:07 , Processed in 0.016068 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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