设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6501|回复: 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
/ ~$ }# a6 z. b; i/ o! \! `应该不行吧,这是系统自带的语言,和C不一样
1 K* Z& k: H+ H2 e
好的,谢谢
发表于 2015-4-16 19:56:47 | 显示全部楼层
可以调用C++。
 楼主| 发表于 2015-4-17 09:01:43 | 显示全部楼层
sefule 发表于 2015-4-16 19:56
- D: i/ v& b; h: O* K- ?可以调用C++。
" H1 x6 e9 ^1 Q* Z3 M
请问如何调用呢?求详细过程,另外C++程序结构比较复杂,显示main函数,然后要调用几个函数,请问要放到一个Method对象里还是拆成好几个Method对象呢?
发表于 2015-4-17 19:12:24 | 显示全部楼层
  1. is( m0 v# i' p6 L* J8 V4 p  P; P
  2.         r:real; file:string;( B- B# W% z0 x4 g- M6 Y
  3. do. u0 a5 j; f7 w; ^
  4.         openConsole;5 I+ I( X  p4 }
  5. 4 b! p5 e$ X$ \# c% E
  6.         /*
    9 J) t  ~& x6 k
  7.         file := to_str(ApplicationHome, "\Plant Simulation\C-Interface\cinterf",- [3 Z9 t$ x% Y! z9 V' G9 g/ R; r5 L
  8.                                    when is64BitApplication then 64 else 32,
    3 y- }8 ^1 S, C& z3 `9 M6 H
  9.                                    "bit.dll");0 ~7 B! T! r. H
  10.                            */* R- V( ^4 V% l
  11.         file := "C:\Users\sun\Documents\Visual Studio 2010\Projects\sg64dll\x64\Debug\sg64dll.dll";4 v+ p3 k; Z. O( B
  12.         local j := loadLibrary(file);
    . k' y1 j" m: O
  13. . [  U) h7 u5 i- Q' p1 M
  14.         if j > 0 then
      }5 j- s$ g9 a+ [+ p
  15.                 print getLoadedLibrary(j)," is loaded.";0 Q" a( t% _* y' v6 c6 J6 N' c: {

  16. " _. a$ s# t* i1 \& y0 A0 X
  17.                 r := callLibrary(j, "calcSin", PI/6);
    2 R7 u) e, X+ U; ^9 b4 e
  18.                 promptmessage(to_str("sin(PI/6) = ", r));
    9 ]. ^+ t3 B* x9 ]* v
  19.                
    & u  d& X* L6 G2 e$ P+ s  n" T0 [, t: M
  20.                 local str:string;
    + V/ h& C% B: u. `
  21.                 str := "I'm OK!";3 f5 ?: i1 O% l) y' r5 z
  22.                 str := callLibrary(j,"resetStr",str);
    7 K* c; I6 A$ k6 O9 [
  23.                 promptmessage(str);
      b, Y2 e& l8 G$ s. v5 |
  24.                 ( G- t$ e( M! e2 u: L* [) d
  25.                 callLibrary(j, "listAccess", Tablefile);3 S) x& f0 v. V# d+ a' }8 F: {& {- H, G3 b
  26.                 : v  {; F6 g' ^7 P- T
  27.                 print "Unloading: ", freeLibrary(j);& `- R: _1 [1 M  g% g
  28.         end;- h+ e* b+ H+ P9 C; M, K9 N
  29. end;
    + E0 I2 @: Y6 T* t( a* u5 U9 N2 V
复制代码
 楼主| 发表于 2015-4-18 15:35:36 | 显示全部楼层
sefule 发表于 2015-4-17 19:12
7 Y3 [% b( H* m! W2 a  S# q
不好意思我还是想问一下,就是在do里先输入C++程序所在的位置然后直接把C++里的程序复制到后面么?
+ l0 S; [/ @: `0 Y3 B
发表于 2015-4-18 17:49:45 | 显示全部楼层
将C++生成dll,然后引入l调用。
1 l! Y. ^6 U9 R2 K注意接口参数传递。% Y" F3 C7 }. f
% T, a8 e4 N! ~9 W; [
感觉你理解有偏差,是调用c++的dll。而不是CLR似的混合编程。
发表于 2015-4-18 20:39:23 | 显示全部楼层
不明白你为什么需要调用C++程序,正常是不需要用到的。
 楼主| 发表于 2015-4-19 15:32:35 | 显示全部楼层
dongshui8558 发表于 2015-4-18 20:39 5 U6 b/ g% _. r# X. e* p& }* K
不明白你为什么需要调用C++程序,正常是不需要用到的。

8 q8 r" E) ]& U( L: X. L! h就是我现在手上有一个算法,然后已经有了一个C程序,我想仿真一下这个算法,如果能直接导进去就不用编simtalk语言了
发表于 2015-4-19 16:17:58 | 显示全部楼层
plant自带的例子里面有教你方法,你好好看看。
 楼主| 发表于 2015-4-23 12:52:25 | 显示全部楼层
dongshui8558 发表于 2015-4-19 16:17 $ q  ]7 h, ?6 K4 R/ f
plant自带的例子里面有教你方法,你好好看看。
) H6 F5 k  q* {% y8 {& E7 D; q
哦哦是《em-plant仿真技术教程》么?还是《plant simulation 生产系统与仿真》呢?麻烦提点一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-12-28 20:15 , Processed in 0.017249 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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