设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7486|回复: 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
. X2 H/ V  _# [7 K. o应该不行吧,这是系统自带的语言,和C不一样
9 w/ M! z0 X% ~6 q" h. D
好的,谢谢
发表于 2015-4-16 19:56:47 | 显示全部楼层
可以调用C++。
 楼主| 发表于 2015-4-17 09:01:43 | 显示全部楼层
sefule 发表于 2015-4-16 19:56 : I% u9 h& X9 z. Y8 l/ p
可以调用C++。

5 \, U; g$ b; w1 [- j( b请问如何调用呢?求详细过程,另外C++程序结构比较复杂,显示main函数,然后要调用几个函数,请问要放到一个Method对象里还是拆成好几个Method对象呢?
发表于 2015-4-17 19:12:24 | 显示全部楼层
  1. is
      i6 G: r" }2 g# |) l
  2.         r:real; file:string;
    % C' m# p" t& d/ V- t+ B8 n
  3. do
    % j* D( z2 J/ B( w
  4.         openConsole;& v: i+ U- z: t
  5. & V8 N2 p8 z. ^& H) |; P" H
  6.         /*0 a* U0 J5 |% u3 P; B3 n" \
  7.         file := to_str(ApplicationHome, "\Plant Simulation\C-Interface\cinterf",( e9 K& o1 r8 S% n
  8.                                    when is64BitApplication then 64 else 32,. E& f, I5 |$ }( k  h, a: T
  9.                                    "bit.dll");, ~+ i( y, d( @1 r6 M7 W9 E
  10.                            */
    6 P0 I# r6 ~3 q
  11.         file := "C:\Users\sun\Documents\Visual Studio 2010\Projects\sg64dll\x64\Debug\sg64dll.dll";  y* p8 t" ?0 Q4 b
  12.         local j := loadLibrary(file);; U7 V/ H) v! U* X
  13. 8 t/ a. _& O( H% t2 g% j
  14.         if j > 0 then
    * H: v& {# w- v
  15.                 print getLoadedLibrary(j)," is loaded.";
    3 Y, _# J: L+ N* Z

  16. * ]" p$ c! \- l8 U3 q! `" q
  17.                 r := callLibrary(j, "calcSin", PI/6);3 e. a  F3 y* M/ K* K
  18.                 promptmessage(to_str("sin(PI/6) = ", r));* ~9 }9 H6 L5 l; ?% D, T/ s  q1 h
  19.                 / K* V& V- k4 B: [1 m
  20.                 local str:string;- |* }9 b( X( D. z# x  d
  21.                 str := "I'm OK!";$ w! m  P  a& Y; q6 _
  22.                 str := callLibrary(j,"resetStr",str);3 r7 ]9 e8 I* x; r5 ?! i1 P5 J- R1 N
  23.                 promptmessage(str);; G: _/ a# W# V$ c0 a
  24.                 2 R! X, L' X8 k) m
  25.                 callLibrary(j, "listAccess", Tablefile);
    1 h  |! A2 u3 ^5 F! ~& Y6 k4 x! ?6 U
  26.                
    0 J( i# U' }; w
  27.                 print "Unloading: ", freeLibrary(j);
    # s+ `* m4 Y$ z6 Y: X( ]8 P
  28.         end;
    & V" N* o* h; _+ G# o0 {0 k/ m
  29. end;
    , t4 e6 e( O& W7 I9 |* o6 V: w
复制代码
 楼主| 发表于 2015-4-18 15:35:36 | 显示全部楼层
sefule 发表于 2015-4-17 19:12

8 P' m+ i5 q! z# t2 y, D不好意思我还是想问一下,就是在do里先输入C++程序所在的位置然后直接把C++里的程序复制到后面么?
0 p0 r) J1 n: v  G2 l8 |
发表于 2015-4-18 17:49:45 | 显示全部楼层
将C++生成dll,然后引入l调用。( }' E* n1 F2 v2 D0 a* B9 @: K
注意接口参数传递。* _  ^1 {9 S5 G2 H2 p) \

7 `3 y6 [4 z0 r感觉你理解有偏差,是调用c++的dll。而不是CLR似的混合编程。
发表于 2015-4-18 20:39:23 | 显示全部楼层
不明白你为什么需要调用C++程序,正常是不需要用到的。
 楼主| 发表于 2015-4-19 15:32:35 | 显示全部楼层
dongshui8558 发表于 2015-4-18 20:39
' }: _/ B0 C5 B# I" L5 n: |" Q  |不明白你为什么需要调用C++程序,正常是不需要用到的。

% }" X0 N. l7 d, S  ?就是我现在手上有一个算法,然后已经有了一个C程序,我想仿真一下这个算法,如果能直接导进去就不用编simtalk语言了
发表于 2015-4-19 16:17:58 | 显示全部楼层
plant自带的例子里面有教你方法,你好好看看。
 楼主| 发表于 2015-4-23 12:52:25 | 显示全部楼层
dongshui8558 发表于 2015-4-19 16:17
, B) D( q) |( V# ~5 {+ t- Pplant自带的例子里面有教你方法,你好好看看。

# W- r' M( P  M7 y哦哦是《em-plant仿真技术教程》么?还是《plant simulation 生产系统与仿真》呢?麻烦提点一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-22 05:09 , Processed in 0.017841 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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