设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7533|回复: 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 . `. E6 r, V7 a$ J2 Y9 N  G
应该不行吧,这是系统自带的语言,和C不一样

4 j- G8 c5 z8 e5 F$ K# P, |好的,谢谢
发表于 2015-4-16 19:56:47 | 显示全部楼层
可以调用C++。
 楼主| 发表于 2015-4-17 09:01:43 | 显示全部楼层
sefule 发表于 2015-4-16 19:56
5 d1 \) n4 V8 F可以调用C++。
2 ~$ p' s/ {. P' T6 H5 L
请问如何调用呢?求详细过程,另外C++程序结构比较复杂,显示main函数,然后要调用几个函数,请问要放到一个Method对象里还是拆成好几个Method对象呢?
发表于 2015-4-17 19:12:24 | 显示全部楼层
  1. is
    . ?" q: T/ P( s( I# q
  2.         r:real; file:string;
    / c3 G6 Q7 P4 N6 T  H
  3. do; j+ O4 V: Q* s, _  D& g" `' d4 E7 n
  4.         openConsole;: D+ d* k. B8 R$ t, _2 x% b3 U* {
  5. & G) U" a4 a( M5 ~% G
  6.         /*
    # a2 w* J8 O+ `, Y3 \
  7.         file := to_str(ApplicationHome, "\Plant Simulation\C-Interface\cinterf",: U; O# F. q) f& r' \. _
  8.                                    when is64BitApplication then 64 else 32,) r  W/ H# c( n' M
  9.                                    "bit.dll");
    ( X! J* k( t" T8 ~7 U! O; |
  10.                            */
    " o4 l4 }/ S  C' }
  11.         file := "C:\Users\sun\Documents\Visual Studio 2010\Projects\sg64dll\x64\Debug\sg64dll.dll";) o% r  U/ b) K4 r- l9 F- G
  12.         local j := loadLibrary(file);
    9 `, `( O* [9 E% |/ V

  13. + S, Z1 N8 p, ]% }) \5 L
  14.         if j > 0 then
    % c9 c+ f  y0 y4 d$ j0 z
  15.                 print getLoadedLibrary(j)," is loaded.";
    - S. U, J) B! a7 S8 Q$ M

  16. " J+ H5 Z+ y" X- ]: c6 @8 q
  17.                 r := callLibrary(j, "calcSin", PI/6);1 H, f' ~2 b, [+ e% m3 Z
  18.                 promptmessage(to_str("sin(PI/6) = ", r));" l' q/ _6 V* w" W
  19.                 $ ]; u! o  f- x+ y0 r8 a8 u* g- m" B6 s
  20.                 local str:string;% {) G4 I+ A2 O2 |! O2 [' l' U8 F" [
  21.                 str := "I'm OK!";
    5 C2 |% z( ^- w
  22.                 str := callLibrary(j,"resetStr",str);
    6 S( i! E! ]' I+ {" h- C3 i: \& a7 j
  23.                 promptmessage(str);* `- ]% I0 c8 ]2 y
  24.                 ; p; w. G  {$ w- O* x
  25.                 callLibrary(j, "listAccess", Tablefile);
    8 G5 U+ c) l! j' J$ w1 K
  26.                 * R( d# X$ d& j8 i, A# k: Y- J
  27.                 print "Unloading: ", freeLibrary(j);" S! c0 @! C; b# a
  28.         end;
    9 ], p" Q. }$ T! E& F- u2 z/ y
  29. end;
    / r# ^  N* X$ y6 t. J
复制代码
 楼主| 发表于 2015-4-18 15:35:36 | 显示全部楼层
sefule 发表于 2015-4-17 19:12

* ^# [4 ^: t3 P不好意思我还是想问一下,就是在do里先输入C++程序所在的位置然后直接把C++里的程序复制到后面么?2 C) r2 p* o$ H6 H6 i  O
发表于 2015-4-18 17:49:45 | 显示全部楼层
将C++生成dll,然后引入l调用。
8 L# J$ S+ [, y! |3 ]; O$ m注意接口参数传递。- _7 a6 p6 m2 _3 \' c% O5 d6 O- n

' {# |/ W/ f8 n% j5 t! a4 x感觉你理解有偏差,是调用c++的dll。而不是CLR似的混合编程。
发表于 2015-4-18 20:39:23 | 显示全部楼层
不明白你为什么需要调用C++程序,正常是不需要用到的。
 楼主| 发表于 2015-4-19 15:32:35 | 显示全部楼层
dongshui8558 发表于 2015-4-18 20:39
8 _5 N0 Q. |$ N' k' X* [0 L+ r不明白你为什么需要调用C++程序,正常是不需要用到的。
% x8 ?) y4 A1 y% e
就是我现在手上有一个算法,然后已经有了一个C程序,我想仿真一下这个算法,如果能直接导进去就不用编simtalk语言了
发表于 2015-4-19 16:17:58 | 显示全部楼层
plant自带的例子里面有教你方法,你好好看看。
 楼主| 发表于 2015-4-23 12:52:25 | 显示全部楼层
dongshui8558 发表于 2015-4-19 16:17
2 g& ^/ J/ E+ x+ k! v* T, h/ ~% [/ Iplant自带的例子里面有教你方法,你好好看看。

( L! w4 R. N# j. S- X" O' N* V哦哦是《em-plant仿真技术教程》么?还是《plant simulation 生产系统与仿真》呢?麻烦提点一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-28 13:55 , Processed in 0.016402 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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