设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7336|回复: 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
6 @2 I# {/ L/ S4 n0 Q& M0 d- W应该不行吧,这是系统自带的语言,和C不一样
' I; h' P! U" b8 q
好的,谢谢
发表于 2015-4-16 19:56:47 | 显示全部楼层
可以调用C++。
 楼主| 发表于 2015-4-17 09:01:43 | 显示全部楼层
sefule 发表于 2015-4-16 19:56 $ [. b# I! M  j
可以调用C++。

6 d, N  L0 P4 g1 L: ~2 |1 X请问如何调用呢?求详细过程,另外C++程序结构比较复杂,显示main函数,然后要调用几个函数,请问要放到一个Method对象里还是拆成好几个Method对象呢?
发表于 2015-4-17 19:12:24 | 显示全部楼层
  1. is# ?9 j! `7 V/ }7 d' K8 W$ Z% G
  2.         r:real; file:string;
    : c( S3 C$ b6 x  Z4 f/ H
  3. do; I5 B$ w3 w0 ?# k, K* D: L) v0 ?
  4.         openConsole;
    ) H, X* }( f, ^2 z
  5. . b9 Z9 \$ {9 V* w
  6.         /*
    - F. @" s3 J* P) l
  7.         file := to_str(ApplicationHome, "\Plant Simulation\C-Interface\cinterf",
    ' b6 k8 Q  C, J9 J2 o
  8.                                    when is64BitApplication then 64 else 32,
      u0 L" v4 q9 h
  9.                                    "bit.dll");4 U1 {5 x+ g. n1 H. e
  10.                            */* g4 U' F0 d" Y2 M
  11.         file := "C:\Users\sun\Documents\Visual Studio 2010\Projects\sg64dll\x64\Debug\sg64dll.dll";* ]- p. Y! G! r5 G, ?
  12.         local j := loadLibrary(file);$ i1 P. Y' g, M7 \; _2 C
  13. - c# n& {4 x" {7 L4 L/ a4 ^
  14.         if j > 0 then  s7 B3 `0 E6 k$ K+ }
  15.                 print getLoadedLibrary(j)," is loaded.";
    1 q/ F+ c& L! [1 h: }3 _6 C; h3 f
  16. 3 B9 u6 z- G$ P! l) j
  17.                 r := callLibrary(j, "calcSin", PI/6);
    4 h0 I3 X5 T* `  E: p$ P2 a/ @4 q
  18.                 promptmessage(to_str("sin(PI/6) = ", r));& m9 a9 K1 k/ b' q3 R2 ]
  19.                
    " }) l  }0 ^: g. H  Q9 }0 M
  20.                 local str:string;
    ' j6 H7 W" `7 m
  21.                 str := "I'm OK!";- Q4 x8 z3 }1 F* ?9 E* ]
  22.                 str := callLibrary(j,"resetStr",str);8 u2 k% U3 U- t6 V7 Z
  23.                 promptmessage(str);- e7 \/ p! C( Z" ^- C
  24.                
    + |# N- u3 n8 K7 R( m8 I2 m
  25.                 callLibrary(j, "listAccess", Tablefile);
    ! N& Z: Z& w+ W% q- h. N5 z% Q
  26.                
    2 @  [6 H6 s6 ?% ^) Y. t1 ^
  27.                 print "Unloading: ", freeLibrary(j);
    9 K2 W$ U: ]/ p) z1 [
  28.         end;. g& E7 M- S  N
  29. end;, g1 f& }- L- K" |. o
复制代码
 楼主| 发表于 2015-4-18 15:35:36 | 显示全部楼层
sefule 发表于 2015-4-17 19:12

7 y4 h1 T/ X( E不好意思我还是想问一下,就是在do里先输入C++程序所在的位置然后直接把C++里的程序复制到后面么?
" E- Z. _5 g0 t3 o/ @' q4 j4 v
发表于 2015-4-18 17:49:45 | 显示全部楼层
将C++生成dll,然后引入l调用。
0 M# j, m; X$ c0 ?9 g( J" J* W注意接口参数传递。  P0 M) B1 \# W* L! E
" u$ W, t+ w( _2 i; |& E9 x2 ]
感觉你理解有偏差,是调用c++的dll。而不是CLR似的混合编程。
发表于 2015-4-18 20:39:23 | 显示全部楼层
不明白你为什么需要调用C++程序,正常是不需要用到的。
 楼主| 发表于 2015-4-19 15:32:35 | 显示全部楼层
dongshui8558 发表于 2015-4-18 20:39
; d3 t0 |5 U: `' B/ G- q不明白你为什么需要调用C++程序,正常是不需要用到的。

) O) f7 [5 a% G7 ]9 a' G就是我现在手上有一个算法,然后已经有了一个C程序,我想仿真一下这个算法,如果能直接导进去就不用编simtalk语言了
发表于 2015-4-19 16:17:58 | 显示全部楼层
plant自带的例子里面有教你方法,你好好看看。
 楼主| 发表于 2015-4-23 12:52:25 | 显示全部楼层
dongshui8558 发表于 2015-4-19 16:17
, ^$ \7 m4 m2 k' {- Vplant自带的例子里面有教你方法,你好好看看。
" V' q$ h: W$ ~8 _: i
哦哦是《em-plant仿真技术教程》么?还是《plant simulation 生产系统与仿真》呢?麻烦提点一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-25 01:04 , Processed in 0.019600 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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