设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7084|回复: 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 & v. v4 ^3 l  b+ a6 t
应该不行吧,这是系统自带的语言,和C不一样

9 U; X% z/ Z/ r5 C& x好的,谢谢
发表于 2015-4-16 19:56:47 | 显示全部楼层
可以调用C++。
 楼主| 发表于 2015-4-17 09:01:43 | 显示全部楼层
sefule 发表于 2015-4-16 19:56
% L% v9 ?: u: J! o  _4 x可以调用C++。

) \1 {7 ^: i& S; k请问如何调用呢?求详细过程,另外C++程序结构比较复杂,显示main函数,然后要调用几个函数,请问要放到一个Method对象里还是拆成好几个Method对象呢?
发表于 2015-4-17 19:12:24 | 显示全部楼层
  1. is
    6 S5 t0 F1 p9 \5 z6 Z
  2.         r:real; file:string;
    . o1 A* c- j6 v7 @/ i' m+ Z
  3. do
    " E0 G5 M% g0 R5 X6 R# H
  4.         openConsole;; M$ g+ e! _9 l
  5. . R) X/ z7 [: V9 E4 Y
  6.         /*9 D! O" I! V6 A* Z- {& Y
  7.         file := to_str(ApplicationHome, "\Plant Simulation\C-Interface\cinterf",
    5 c) f6 {2 t' I  D3 E
  8.                                    when is64BitApplication then 64 else 32,2 e% k' W: ^9 S( V! x  I
  9.                                    "bit.dll");
    6 z& t3 W, D) A5 e7 t
  10.                            */
    5 L; `5 T& u% U. y  F, x7 @
  11.         file := "C:\Users\sun\Documents\Visual Studio 2010\Projects\sg64dll\x64\Debug\sg64dll.dll";1 b! R7 ^( K' T7 S- e
  12.         local j := loadLibrary(file);9 [) ^9 j7 `9 @( u* t4 H/ R; I
  13. 0 T' S* D3 S# ~: v" i: c% \: C! W
  14.         if j > 0 then9 v1 U9 x- M7 c9 {
  15.                 print getLoadedLibrary(j)," is loaded.";4 [. K' p3 G( a4 Q  j  }! R" ~

  16. % R0 f- }" F6 C- d# m5 f* I
  17.                 r := callLibrary(j, "calcSin", PI/6);! W9 G* ~' P% Q! w2 C, T" l
  18.                 promptmessage(to_str("sin(PI/6) = ", r));
    ) u. D7 R2 G. L0 q" j
  19.                 . Q/ l. O3 N9 l: n& R; w0 S" `
  20.                 local str:string;$ Y4 A/ R5 m2 Y- r" S
  21.                 str := "I'm OK!";/ G1 I# w2 V$ p% P
  22.                 str := callLibrary(j,"resetStr",str);, G* U* _! t( b& }! \
  23.                 promptmessage(str);+ J8 V( S# W% s1 K' T9 z  [. J
  24.                 0 ]' c$ `+ `. h2 D$ q. M
  25.                 callLibrary(j, "listAccess", Tablefile);7 r. Y, c# s' d& l* N
  26.                
    % t# ^0 o5 s  h3 t' ~9 D9 I
  27.                 print "Unloading: ", freeLibrary(j);
    + J: [/ ^* V* `. k% i+ @2 V
  28.         end;/ B8 B" f* g! Z* ^0 C
  29. end;
    5 \; x; v2 f0 N* `! A* o6 u. [' k. w
复制代码
 楼主| 发表于 2015-4-18 15:35:36 | 显示全部楼层
sefule 发表于 2015-4-17 19:12
3 h; P- d4 v! l, O
不好意思我还是想问一下,就是在do里先输入C++程序所在的位置然后直接把C++里的程序复制到后面么?
# Y" u0 i4 X; w9 `8 S4 R
发表于 2015-4-18 17:49:45 | 显示全部楼层
将C++生成dll,然后引入l调用。3 @! S6 @& S% F6 C+ F: W. U* w2 ~7 L5 s
注意接口参数传递。
- _* V- X- Z1 b+ M9 M. F" M8 M' X# ?# Y. c3 O
感觉你理解有偏差,是调用c++的dll。而不是CLR似的混合编程。
发表于 2015-4-18 20:39:23 | 显示全部楼层
不明白你为什么需要调用C++程序,正常是不需要用到的。
 楼主| 发表于 2015-4-19 15:32:35 | 显示全部楼层
dongshui8558 发表于 2015-4-18 20:39 1 f2 k' P( [: T; D( R" o
不明白你为什么需要调用C++程序,正常是不需要用到的。
" b0 m, {; T9 T9 V" ]. _
就是我现在手上有一个算法,然后已经有了一个C程序,我想仿真一下这个算法,如果能直接导进去就不用编simtalk语言了
发表于 2015-4-19 16:17:58 | 显示全部楼层
plant自带的例子里面有教你方法,你好好看看。
 楼主| 发表于 2015-4-23 12:52:25 | 显示全部楼层
dongshui8558 发表于 2015-4-19 16:17
0 x6 N, |! Z! e- Hplant自带的例子里面有教你方法,你好好看看。

  ~" Z& w/ d& T8 p) C5 \# Q2 }$ I8 \6 Y哦哦是《em-plant仿真技术教程》么?还是《plant simulation 生产系统与仿真》呢?麻烦提点一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-4-17 17:34 , Processed in 0.015233 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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