设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6966|回复: 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 Q  x8 W5 w9 \
应该不行吧,这是系统自带的语言,和C不一样

# x3 F: I; u( r4 N. |" s0 h# V& _' t好的,谢谢
发表于 2015-4-16 19:56:47 | 显示全部楼层
可以调用C++。
 楼主| 发表于 2015-4-17 09:01:43 | 显示全部楼层
sefule 发表于 2015-4-16 19:56 ! G, r: Y# e" l5 _, [- i, W
可以调用C++。
/ r  V8 [3 k. ^! g$ u4 C2 ?* M
请问如何调用呢?求详细过程,另外C++程序结构比较复杂,显示main函数,然后要调用几个函数,请问要放到一个Method对象里还是拆成好几个Method对象呢?
发表于 2015-4-17 19:12:24 | 显示全部楼层
  1. is1 ]/ B8 K+ ^, u; R# ^
  2.         r:real; file:string;7 {4 Y7 r' Q1 e+ n
  3. do
    ) y: ^& A  {( [( _* C
  4.         openConsole;
    ( u' q$ r1 p: I

  5. 2 t, G( ]/ Y" ]! R1 S) f/ F% U( Y* ?
  6.         /*0 f: l# @5 q& h2 ^' E8 t3 w
  7.         file := to_str(ApplicationHome, "\Plant Simulation\C-Interface\cinterf",
    - ?: X3 r8 T' R& D7 [
  8.                                    when is64BitApplication then 64 else 32,: v. R+ L4 f4 S4 G/ Z
  9.                                    "bit.dll");$ x8 U3 @# V  i6 O0 B
  10.                            */; O: U8 W  L  V% t( o% A: ?
  11.         file := "C:\Users\sun\Documents\Visual Studio 2010\Projects\sg64dll\x64\Debug\sg64dll.dll";
    " m9 |9 i# Q7 q7 @, e) @/ A) s
  12.         local j := loadLibrary(file);+ I+ Q: G1 b0 W, E  q; V8 ?7 Q. \
  13. / ~3 V& W8 v' f
  14.         if j > 0 then' _+ c# t- J; ]# s1 D8 c# u1 ~6 S
  15.                 print getLoadedLibrary(j)," is loaded.";) z- O  d8 |5 I8 r$ @
  16. + Q- @8 w: U$ H
  17.                 r := callLibrary(j, "calcSin", PI/6);: y1 n3 p' U3 x/ D) x- R9 L
  18.                 promptmessage(to_str("sin(PI/6) = ", r));
    $ q- B: z$ W5 V
  19.                 8 N5 f: G; J$ t' Y" F
  20.                 local str:string;
    ( ]) w" Z! G( `. B7 x6 H* r
  21.                 str := "I'm OK!";
    & ?3 A, @' l; o2 W8 N5 O
  22.                 str := callLibrary(j,"resetStr",str);& a7 m. p- t! v
  23.                 promptmessage(str);3 v4 @( Z9 a" ], A
  24.                 + j2 k( w% A1 u4 E
  25.                 callLibrary(j, "listAccess", Tablefile);" L  Z' X& X7 m6 ]  a# {
  26.                
    , F7 u$ [% U+ E2 R2 m2 X; G
  27.                 print "Unloading: ", freeLibrary(j);
    % f+ D2 H) q- U) c1 Z
  28.         end;
    : `' }, @* X# K9 E9 T1 ~
  29. end;
    $ p$ A4 v1 z1 ^7 O$ s
复制代码
 楼主| 发表于 2015-4-18 15:35:36 | 显示全部楼层
sefule 发表于 2015-4-17 19:12
% r: _( m- U, n
不好意思我还是想问一下,就是在do里先输入C++程序所在的位置然后直接把C++里的程序复制到后面么?
! I8 X* Q+ ]+ d$ |4 q
发表于 2015-4-18 17:49:45 | 显示全部楼层
将C++生成dll,然后引入l调用。
. A* [1 p& }  M注意接口参数传递。8 u! K9 y; O7 J: S% A4 z
# i8 @4 Q3 _! U0 Q: i+ Q! y, W: [
感觉你理解有偏差,是调用c++的dll。而不是CLR似的混合编程。
发表于 2015-4-18 20:39:23 | 显示全部楼层
不明白你为什么需要调用C++程序,正常是不需要用到的。
 楼主| 发表于 2015-4-19 15:32:35 | 显示全部楼层
dongshui8558 发表于 2015-4-18 20:39
9 c9 x6 y, U1 T4 X( n4 V+ I不明白你为什么需要调用C++程序,正常是不需要用到的。
6 U- \3 }& i( N) k# b8 [% J5 ]
就是我现在手上有一个算法,然后已经有了一个C程序,我想仿真一下这个算法,如果能直接导进去就不用编simtalk语言了
发表于 2015-4-19 16:17:58 | 显示全部楼层
plant自带的例子里面有教你方法,你好好看看。
 楼主| 发表于 2015-4-23 12:52:25 | 显示全部楼层
dongshui8558 发表于 2015-4-19 16:17
# W# t* {  R8 r# c3 s2 O+ {/ Qplant自带的例子里面有教你方法,你好好看看。

$ h* O0 T1 m* Q  U, e哦哦是《em-plant仿真技术教程》么?还是《plant simulation 生产系统与仿真》呢?麻烦提点一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-25 07:21 , Processed in 0.020208 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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