设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7920|回复: 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
/ M2 H/ v# A$ M* _3 _3 B应该不行吧,这是系统自带的语言,和C不一样

" H/ |8 p( ^( }  w好的,谢谢
发表于 2015-4-16 19:56:47 | 显示全部楼层
可以调用C++。
 楼主| 发表于 2015-4-17 09:01:43 | 显示全部楼层
sefule 发表于 2015-4-16 19:56   _& o7 ~: V/ R: p) q% O8 v
可以调用C++。
2 ~5 L$ a% I! ^0 Q! v4 U% I3 L
请问如何调用呢?求详细过程,另外C++程序结构比较复杂,显示main函数,然后要调用几个函数,请问要放到一个Method对象里还是拆成好几个Method对象呢?
发表于 2015-4-17 19:12:24 | 显示全部楼层
  1. is" N7 C) D' W  I3 T" W
  2.         r:real; file:string;; z; |5 m: P! k# l, G! R- K  _' X
  3. do+ c3 w" A& ?# I- {, M
  4.         openConsole;( Z  u, C% A. [8 J/ ^3 P
  5. 5 Z& u' R  ?  P1 o( S6 R
  6.         /*
    % h! z' r4 k2 r) ^, j, n' J8 Y
  7.         file := to_str(ApplicationHome, "\Plant Simulation\C-Interface\cinterf",9 o( X4 K$ P' o5 J  C! T5 _
  8.                                    when is64BitApplication then 64 else 32,
    0 |" N9 a( V/ v: Z6 G7 q
  9.                                    "bit.dll");
    . d/ w$ U( h$ }2 V) Z, j! h
  10.                            */  P2 `$ Q9 ?9 Q
  11.         file := "C:\Users\sun\Documents\Visual Studio 2010\Projects\sg64dll\x64\Debug\sg64dll.dll";
    : V/ R% L7 S  |) t
  12.         local j := loadLibrary(file);& F. t  g8 G3 `  G! J
  13. 9 r- R3 X- U' {* }! u4 S6 H
  14.         if j > 0 then# V8 g* P: `: U5 {7 Z3 K; u3 y
  15.                 print getLoadedLibrary(j)," is loaded.";8 |& r6 f; G, x: `

  16.   z" Q0 D: _9 t& j! w  T
  17.                 r := callLibrary(j, "calcSin", PI/6);
    * H3 j: w& G; }% V) f9 m$ X
  18.                 promptmessage(to_str("sin(PI/6) = ", r));8 h. J6 I. m8 X" C7 r
  19.                
    , b, [  c( a: u; y4 b% o
  20.                 local str:string;
    8 Q5 g" y% R- b2 J
  21.                 str := "I'm OK!";& S; a7 c) ~2 O) U& n2 O
  22.                 str := callLibrary(j,"resetStr",str);
    ! r6 j, ]6 o: E: B/ T1 z; z
  23.                 promptmessage(str);6 O3 @5 w6 A0 a8 W3 ^
  24.                   u0 t& ~0 ]$ @
  25.                 callLibrary(j, "listAccess", Tablefile);
    . K9 N. Q0 D( d' R
  26.                 3 P% Y" {2 A! J8 p. b& J$ Q
  27.                 print "Unloading: ", freeLibrary(j);8 n4 F6 v  @& P& C. n" s
  28.         end;  }' n1 Q' o8 B1 p) N( _
  29. end;
    ! W3 o: y$ O# r; w( d
复制代码
 楼主| 发表于 2015-4-18 15:35:36 | 显示全部楼层
sefule 发表于 2015-4-17 19:12
9 ]( B: V/ U2 X- Z' x& k- l4 L; N
不好意思我还是想问一下,就是在do里先输入C++程序所在的位置然后直接把C++里的程序复制到后面么?; j, I  O* o/ M* U$ n8 ]( F! I4 I. k% T
发表于 2015-4-18 17:49:45 | 显示全部楼层
将C++生成dll,然后引入l调用。3 Q* b$ t5 ^: u1 M! p8 e' E( P" |) d" j
注意接口参数传递。* C1 w1 @3 I/ Y6 n9 h% h) I

9 x2 w, `% O. B6 x* M感觉你理解有偏差,是调用c++的dll。而不是CLR似的混合编程。
发表于 2015-4-18 20:39:23 | 显示全部楼层
不明白你为什么需要调用C++程序,正常是不需要用到的。
 楼主| 发表于 2015-4-19 15:32:35 | 显示全部楼层
dongshui8558 发表于 2015-4-18 20:39 ; ~$ ?( a+ v( L# z0 b& L6 A
不明白你为什么需要调用C++程序,正常是不需要用到的。
! r* P+ d& j$ h8 Z
就是我现在手上有一个算法,然后已经有了一个C程序,我想仿真一下这个算法,如果能直接导进去就不用编simtalk语言了
发表于 2015-4-19 16:17:58 | 显示全部楼层
plant自带的例子里面有教你方法,你好好看看。
 楼主| 发表于 2015-4-23 12:52:25 | 显示全部楼层
dongshui8558 发表于 2015-4-19 16:17 - u7 B( R" n* E
plant自带的例子里面有教你方法,你好好看看。

# s$ ~0 j9 z: _( }8 G哦哦是《em-plant仿真技术教程》么?还是《plant simulation 生产系统与仿真》呢?麻烦提点一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-8-3 13:02 , Processed in 0.022954 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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