设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7181|回复: 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 ( t* G8 v! r( X+ h" a$ t
应该不行吧,这是系统自带的语言,和C不一样

' I6 X7 g# _( o/ F6 i# H+ g好的,谢谢
发表于 2015-4-16 19:56:47 | 显示全部楼层
可以调用C++。
 楼主| 发表于 2015-4-17 09:01:43 | 显示全部楼层
sefule 发表于 2015-4-16 19:56 1 c, L5 h8 J' C& |$ ~& w1 g
可以调用C++。
/ p3 Y* L  ~: v; s" Q* n  p
请问如何调用呢?求详细过程,另外C++程序结构比较复杂,显示main函数,然后要调用几个函数,请问要放到一个Method对象里还是拆成好几个Method对象呢?
发表于 2015-4-17 19:12:24 | 显示全部楼层
  1. is
    7 |2 e( e" R3 U0 ?
  2.         r:real; file:string;' ~8 g& ~7 o1 }' D1 z
  3. do
    % C: S7 ~7 c. u* U
  4.         openConsole;- q. K8 J) `6 K( f" S" }
  5. # a9 R( e# z3 ~9 I/ h  k: n" ^
  6.         /*, M: O' z( P3 M! G$ Z2 _) r2 J/ o
  7.         file := to_str(ApplicationHome, "\Plant Simulation\C-Interface\cinterf",
    3 W$ G# i* w) r
  8.                                    when is64BitApplication then 64 else 32,0 T2 D) B' ]9 @& [) P5 M
  9.                                    "bit.dll");6 m+ ?( B) S, O# o
  10.                            */
    , [! D7 S% a) a6 x' Y. ^
  11.         file := "C:\Users\sun\Documents\Visual Studio 2010\Projects\sg64dll\x64\Debug\sg64dll.dll";
    ! i- X6 m# x7 `! B. J
  12.         local j := loadLibrary(file);
    # ?* m7 j% T- [$ v

  13. * f" c9 m: D3 t! M
  14.         if j > 0 then
    % u4 X0 w# |. w. \! k. T
  15.                 print getLoadedLibrary(j)," is loaded.";
    , F+ M( s% D  {' d
  16. ) ]" j3 ]2 U/ A' b: X* d; U
  17.                 r := callLibrary(j, "calcSin", PI/6);8 l" l  v9 b( j9 T
  18.                 promptmessage(to_str("sin(PI/6) = ", r));" P8 D, n$ Y) B: g; }4 H
  19.                
    : u& [6 r+ O: T; V4 C, i8 `+ V
  20.                 local str:string;3 D/ Z# D8 C4 v7 y
  21.                 str := "I'm OK!";
    * F6 K+ `  i, E8 \. p+ J2 t( u" w. l
  22.                 str := callLibrary(j,"resetStr",str);
    $ q1 l7 V0 ~' j1 K. r
  23.                 promptmessage(str);" ]- |, T+ w5 h, N
  24.                 0 n. w( E* P% F2 \& z; C3 J* P
  25.                 callLibrary(j, "listAccess", Tablefile);
    5 L. `- P* B' E4 ?' U
  26.                
    6 E# x& c4 i* S
  27.                 print "Unloading: ", freeLibrary(j);* F5 e; L6 V& q) U1 c/ f9 d, i
  28.         end;
    ( M# s2 S1 N7 `# D8 _
  29. end;
    , m4 }+ Y7 e8 P8 J
复制代码
 楼主| 发表于 2015-4-18 15:35:36 | 显示全部楼层
sefule 发表于 2015-4-17 19:12

/ q; {9 W! [, h3 e3 q7 U( ~不好意思我还是想问一下,就是在do里先输入C++程序所在的位置然后直接把C++里的程序复制到后面么?% s9 @' Q8 h' `5 [9 a" l
发表于 2015-4-18 17:49:45 | 显示全部楼层
将C++生成dll,然后引入l调用。1 c# b8 U( z( `4 I1 g$ J2 i
注意接口参数传递。
7 F8 _' I/ z+ H9 z/ u5 u( U; z6 S4 f4 _/ t! z9 g) e9 u
感觉你理解有偏差,是调用c++的dll。而不是CLR似的混合编程。
发表于 2015-4-18 20:39:23 | 显示全部楼层
不明白你为什么需要调用C++程序,正常是不需要用到的。
 楼主| 发表于 2015-4-19 15:32:35 | 显示全部楼层
dongshui8558 发表于 2015-4-18 20:39
+ ~1 {- w3 ~: P) N3 T# O! _不明白你为什么需要调用C++程序,正常是不需要用到的。
9 Z8 O7 W# A5 A) T8 }
就是我现在手上有一个算法,然后已经有了一个C程序,我想仿真一下这个算法,如果能直接导进去就不用编simtalk语言了
发表于 2015-4-19 16:17:58 | 显示全部楼层
plant自带的例子里面有教你方法,你好好看看。
 楼主| 发表于 2015-4-23 12:52:25 | 显示全部楼层
dongshui8558 发表于 2015-4-19 16:17 & y6 P8 \# ?" S6 A' c8 b5 p: A7 Q
plant自带的例子里面有教你方法,你好好看看。
" T9 z# p$ C6 t1 E) j/ B- s
哦哦是《em-plant仿真技术教程》么?还是《plant simulation 生产系统与仿真》呢?麻烦提点一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-2 09:21 , Processed in 0.020517 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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