设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6353|回复: 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
; e9 |% @' W/ A5 J  O4 }' \应该不行吧,这是系统自带的语言,和C不一样
; _8 [2 ^, |9 l9 e8 e* _- K% G
好的,谢谢
发表于 2015-4-16 19:56:47 | 显示全部楼层
可以调用C++。
 楼主| 发表于 2015-4-17 09:01:43 | 显示全部楼层
sefule 发表于 2015-4-16 19:56
& f% U1 A0 M* Y2 q. _可以调用C++。
) y, u( c6 c8 \1 J& [0 z+ y% M
请问如何调用呢?求详细过程,另外C++程序结构比较复杂,显示main函数,然后要调用几个函数,请问要放到一个Method对象里还是拆成好几个Method对象呢?
发表于 2015-4-17 19:12:24 | 显示全部楼层
  1. is
    ; W5 c5 z9 L: t
  2.         r:real; file:string;) t- U  g+ l3 @, C
  3. do
    ( [7 L. n4 o$ k
  4.         openConsole;
    - P$ {7 y2 z' R. w. ^
  5. + v7 T( n* a- N8 S! U
  6.         /*3 m& R% M( A$ i9 @9 N) q6 ~3 q
  7.         file := to_str(ApplicationHome, "\Plant Simulation\C-Interface\cinterf",- H& J# M( w1 m4 o6 N
  8.                                    when is64BitApplication then 64 else 32,
    9 h! `7 J  G3 \$ v/ D5 w
  9.                                    "bit.dll");5 X* [! a3 z' q
  10.                            */0 ^0 O! h+ r% `* i2 j
  11.         file := "C:\Users\sun\Documents\Visual Studio 2010\Projects\sg64dll\x64\Debug\sg64dll.dll";6 F' t3 k% S+ f  f
  12.         local j := loadLibrary(file);
    2 Z# ]  g2 e4 x9 V6 x) o
  13. 5 _8 h3 I* l' G1 b& V0 h3 Z( {, O8 I
  14.         if j > 0 then
    3 y- G& d$ G" ]( y& A9 v
  15.                 print getLoadedLibrary(j)," is loaded.";
    4 U8 x% Q2 y5 }* P: X9 F: g0 S5 g2 T  f

  16. & a0 E, G8 {  m
  17.                 r := callLibrary(j, "calcSin", PI/6);
    : q5 X* D3 n3 ^7 h3 O! N' \  k7 k+ {$ S$ M
  18.                 promptmessage(to_str("sin(PI/6) = ", r));
    1 T" B2 J- U" h) _1 J- Q  a
  19.                 # n( c/ S# }, a4 C- D
  20.                 local str:string;
    ) o- ]7 S( _; k# t( S# M$ d9 H6 I
  21.                 str := "I'm OK!";, v8 W4 d9 w( I! p6 N4 M
  22.                 str := callLibrary(j,"resetStr",str);
    $ K# @" X  j  U* a$ v
  23.                 promptmessage(str);+ d) k( }2 X- ?5 p
  24.                 7 V$ V& n3 z1 u. O& P7 g4 S
  25.                 callLibrary(j, "listAccess", Tablefile);+ _! f, g" z8 W" @3 o+ q
  26.                
    9 H" l, G! {( q" O) D
  27.                 print "Unloading: ", freeLibrary(j);
    8 @/ r* H2 B) f' d' @
  28.         end;
    & `, N8 I4 V2 l5 m$ a. }: n( Q
  29. end;
    4 ^( T" L- ]# w# `& z! u$ n8 a/ A
复制代码
 楼主| 发表于 2015-4-18 15:35:36 | 显示全部楼层
sefule 发表于 2015-4-17 19:12
+ E/ I- C( E) b9 ]
不好意思我还是想问一下,就是在do里先输入C++程序所在的位置然后直接把C++里的程序复制到后面么?$ W( _" k6 x. b+ l, Q: I
发表于 2015-4-18 17:49:45 | 显示全部楼层
将C++生成dll,然后引入l调用。
1 `/ c. n8 w7 P: Z" `( j! @注意接口参数传递。* t6 U* a2 A0 i6 s9 f5 S( Z, S

7 O; s, h/ Z% I/ x2 z# k. M9 ?感觉你理解有偏差,是调用c++的dll。而不是CLR似的混合编程。
发表于 2015-4-18 20:39:23 | 显示全部楼层
不明白你为什么需要调用C++程序,正常是不需要用到的。
 楼主| 发表于 2015-4-19 15:32:35 | 显示全部楼层
dongshui8558 发表于 2015-4-18 20:39 & e3 a( Z' c. X4 w3 O4 v! w
不明白你为什么需要调用C++程序,正常是不需要用到的。

: a# y  G- |$ a+ w7 z# l$ e就是我现在手上有一个算法,然后已经有了一个C程序,我想仿真一下这个算法,如果能直接导进去就不用编simtalk语言了
发表于 2015-4-19 16:17:58 | 显示全部楼层
plant自带的例子里面有教你方法,你好好看看。
 楼主| 发表于 2015-4-23 12:52:25 | 显示全部楼层
dongshui8558 发表于 2015-4-19 16:17
- l! \6 ^. c/ S/ O9 J1 h- d0 iplant自带的例子里面有教你方法,你好好看看。
( A# h8 H: ?2 n1 e. T6 Z
哦哦是《em-plant仿真技术教程》么?还是《plant simulation 生产系统与仿真》呢?麻烦提点一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-12-6 19:49 , Processed in 0.019737 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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