设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6471|回复: 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 3 o5 U* W8 E7 f; G: {
应该不行吧,这是系统自带的语言,和C不一样

4 m: f1 S' v- h6 ]( l, Y, F好的,谢谢
发表于 2015-4-16 19:56:47 | 显示全部楼层
可以调用C++。
 楼主| 发表于 2015-4-17 09:01:43 | 显示全部楼层
sefule 发表于 2015-4-16 19:56 6 g8 i4 z1 c$ }" ~7 F5 w6 J& k; j
可以调用C++。

# t  N2 H: m2 R0 M7 `/ c+ a0 h7 z* O请问如何调用呢?求详细过程,另外C++程序结构比较复杂,显示main函数,然后要调用几个函数,请问要放到一个Method对象里还是拆成好几个Method对象呢?
发表于 2015-4-17 19:12:24 | 显示全部楼层
  1. is% b5 ~$ `2 ?; m; N* Y
  2.         r:real; file:string;, w; X; @/ h2 W- u2 I" @
  3. do
    0 k& f7 A& H; v8 e
  4.         openConsole;
    9 H- f8 P2 G9 y5 }/ k5 {

  5. 9 }& S' ~; i9 M+ ^& a
  6.         /*
      h6 P: Y! R; W$ [* [8 T* O" L, O) \" x
  7.         file := to_str(ApplicationHome, "\Plant Simulation\C-Interface\cinterf",
    ! F: F7 \7 a' m
  8.                                    when is64BitApplication then 64 else 32,, O, g+ ]1 n6 t# A* E! c  n4 {
  9.                                    "bit.dll");
    1 o* e8 b3 x: S4 O; d
  10.                            */
    , j2 u4 j: j( y. d  k5 D( t$ D2 ]4 E
  11.         file := "C:\Users\sun\Documents\Visual Studio 2010\Projects\sg64dll\x64\Debug\sg64dll.dll";/ t. S, Y! w7 `7 p' V( Y3 @
  12.         local j := loadLibrary(file);
    . F5 n# R# P& {+ p6 y$ Q
  13. . U2 q* m% F) L$ B& X) v* u
  14.         if j > 0 then) K) |% I" H+ M6 n# ^; s
  15.                 print getLoadedLibrary(j)," is loaded.";
    ( X* \3 x, h3 R' s# _+ J- o

  16. 4 F4 ~  N2 Y, s# N+ M# u
  17.                 r := callLibrary(j, "calcSin", PI/6);
    ' x/ I; c# ~0 T: E
  18.                 promptmessage(to_str("sin(PI/6) = ", r));
    . w. n# ~2 S6 H! f) }' E) `
  19.                
    $ Q' ?' r1 t; F' E6 ~. V) }
  20.                 local str:string;
    6 ~8 v  ?( z: c8 m4 d
  21.                 str := "I'm OK!";; O- L! Q8 b% k% j# X
  22.                 str := callLibrary(j,"resetStr",str);; U% n! G1 X, o; w5 o) t
  23.                 promptmessage(str);! Y! m( |( }# b! X9 i& ?
  24.                
    , o: ^9 |: Y4 a* Z
  25.                 callLibrary(j, "listAccess", Tablefile);" @2 `% t8 W! p: h
  26.                
    8 k6 H2 j& Z' R0 _
  27.                 print "Unloading: ", freeLibrary(j);
    9 ?6 r" z1 W2 _5 r5 }
  28.         end;
    2 J, v3 V2 d2 V* Y5 g' L
  29. end;) k) b% |4 |% K0 A' x. ~
复制代码
 楼主| 发表于 2015-4-18 15:35:36 | 显示全部楼层
sefule 发表于 2015-4-17 19:12
% l; X' ?+ E/ g
不好意思我还是想问一下,就是在do里先输入C++程序所在的位置然后直接把C++里的程序复制到后面么?2 g: S% d7 e0 R3 n# m
发表于 2015-4-18 17:49:45 | 显示全部楼层
将C++生成dll,然后引入l调用。
2 f$ q' N& T" e+ f注意接口参数传递。% y; v( [1 [* c# D: F9 g
- q+ Z+ r$ I$ _) q, R1 l
感觉你理解有偏差,是调用c++的dll。而不是CLR似的混合编程。
发表于 2015-4-18 20:39:23 | 显示全部楼层
不明白你为什么需要调用C++程序,正常是不需要用到的。
 楼主| 发表于 2015-4-19 15:32:35 | 显示全部楼层
dongshui8558 发表于 2015-4-18 20:39 1 O* g% q( P6 z2 x
不明白你为什么需要调用C++程序,正常是不需要用到的。
5 d  K9 w( s& c" ~
就是我现在手上有一个算法,然后已经有了一个C程序,我想仿真一下这个算法,如果能直接导进去就不用编simtalk语言了
发表于 2015-4-19 16:17:58 | 显示全部楼层
plant自带的例子里面有教你方法,你好好看看。
 楼主| 发表于 2015-4-23 12:52:25 | 显示全部楼层
dongshui8558 发表于 2015-4-19 16:17
; G/ T/ u# [5 ?# H& D6 v/ Dplant自带的例子里面有教你方法,你好好看看。
8 F# r2 R. T' z" s& y0 R6 F
哦哦是《em-plant仿真技术教程》么?还是《plant simulation 生产系统与仿真》呢?麻烦提点一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-12-21 09:02 , Processed in 0.018993 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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