设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6754|回复: 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 # O; {  a  O: j' ?- L; u
应该不行吧,这是系统自带的语言,和C不一样

0 u7 e6 x" C/ _1 i0 ~5 Y好的,谢谢
发表于 2015-4-16 19:56:47 | 显示全部楼层
可以调用C++。
 楼主| 发表于 2015-4-17 09:01:43 | 显示全部楼层
sefule 发表于 2015-4-16 19:56 , U' m! S/ v/ p# D
可以调用C++。

; D7 b0 \4 R6 @$ T5 o5 f( X& k请问如何调用呢?求详细过程,另外C++程序结构比较复杂,显示main函数,然后要调用几个函数,请问要放到一个Method对象里还是拆成好几个Method对象呢?
发表于 2015-4-17 19:12:24 | 显示全部楼层
  1. is/ P9 M. e5 r. ]7 r9 W- I
  2.         r:real; file:string;) ?: }" `! F5 M- V' Q) G
  3. do: ^8 p  `0 ~1 A' K! @
  4.         openConsole;
    , q) q% c  q6 Y2 d: j

  5. # R; X# r3 f6 X9 b5 O5 W
  6.         /*( a/ n. P3 U7 w8 h) o4 B5 n+ a; Y
  7.         file := to_str(ApplicationHome, "\Plant Simulation\C-Interface\cinterf",1 d- v- a; m/ L' {& o9 Q0 s3 |5 b
  8.                                    when is64BitApplication then 64 else 32,- t/ _% ]$ j" F) |* f
  9.                                    "bit.dll");5 b; \* W$ ]# X' y( y4 p* ?4 P% k
  10.                            */
    - e1 X2 Y; s+ h) ?4 r# b4 k
  11.         file := "C:\Users\sun\Documents\Visual Studio 2010\Projects\sg64dll\x64\Debug\sg64dll.dll";
    / v/ f* f) m) t  c
  12.         local j := loadLibrary(file);( E6 n7 v6 I( t; H  J* h$ b" g
  13. ! T3 F& S; K' f" c+ q# C
  14.         if j > 0 then
    2 i1 V3 k, l* ~) k
  15.                 print getLoadedLibrary(j)," is loaded.";; {! S/ a. }" \

  16. ) r* m1 e  `) R2 H& N# d
  17.                 r := callLibrary(j, "calcSin", PI/6);1 D6 E" `; i7 P  ^4 T4 {
  18.                 promptmessage(to_str("sin(PI/6) = ", r));+ ]& }' P! q( ~5 Z6 {3 k
  19.                
    7 D  K1 b2 ^! p. P, U
  20.                 local str:string;# A: H: @( u% x& S, c9 {* h5 c0 ?
  21.                 str := "I'm OK!";
    - d- T( H" j# P  ]6 W# i& D9 f
  22.                 str := callLibrary(j,"resetStr",str);
    / X( z7 [' v! x7 o
  23.                 promptmessage(str);
    * a7 k5 i  J0 F/ S, m' y) P1 Z/ n
  24.                
    2 `+ |1 w$ f9 o
  25.                 callLibrary(j, "listAccess", Tablefile);# z0 b+ G" _/ I5 `& x3 Y
  26.                
    % c/ _  d( s4 G3 L% e$ ^+ X; J
  27.                 print "Unloading: ", freeLibrary(j);
    & M# S& I$ u6 F" u. V8 Z% |3 Y
  28.         end;
    ' y) K  Y2 Q5 k- X; L% j$ S
  29. end;
    # Y- ^) d( ~! q, \0 P* T
复制代码
 楼主| 发表于 2015-4-18 15:35:36 | 显示全部楼层
sefule 发表于 2015-4-17 19:12

* t* u+ E- O; M' a7 \7 i不好意思我还是想问一下,就是在do里先输入C++程序所在的位置然后直接把C++里的程序复制到后面么?
. n5 j' v" l' T4 O0 W/ ]: {9 L
发表于 2015-4-18 17:49:45 | 显示全部楼层
将C++生成dll,然后引入l调用。
  H5 V1 B5 a2 J) W注意接口参数传递。
, C  j7 h8 o! C. R$ L$ w0 ]8 Q0 v; {$ z/ l. h
感觉你理解有偏差,是调用c++的dll。而不是CLR似的混合编程。
发表于 2015-4-18 20:39:23 | 显示全部楼层
不明白你为什么需要调用C++程序,正常是不需要用到的。
 楼主| 发表于 2015-4-19 15:32:35 | 显示全部楼层
dongshui8558 发表于 2015-4-18 20:39 0 A0 v' R+ j6 n, Z+ r
不明白你为什么需要调用C++程序,正常是不需要用到的。

. S9 R/ [* ~0 B9 F% [就是我现在手上有一个算法,然后已经有了一个C程序,我想仿真一下这个算法,如果能直接导进去就不用编simtalk语言了
发表于 2015-4-19 16:17:58 | 显示全部楼层
plant自带的例子里面有教你方法,你好好看看。
 楼主| 发表于 2015-4-23 12:52:25 | 显示全部楼层
dongshui8558 发表于 2015-4-19 16:17
, k. q5 _: U: w5 b2 B+ Mplant自带的例子里面有教你方法,你好好看看。
, Z+ p- l5 U( t4 i; G+ R2 b+ G
哦哦是《em-plant仿真技术教程》么?还是《plant simulation 生产系统与仿真》呢?麻烦提点一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-2-15 16:50 , Processed in 0.017911 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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