设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5820|回复: 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
& a% o* ]6 G$ `% _0 O1 v* Z应该不行吧,这是系统自带的语言,和C不一样

+ z0 O) K  A0 p, u. a2 B7 y7 @好的,谢谢
发表于 2015-4-16 19:56:47 | 显示全部楼层
可以调用C++。
 楼主| 发表于 2015-4-17 09:01:43 | 显示全部楼层
sefule 发表于 2015-4-16 19:56
4 T* g( |2 v2 P可以调用C++。
4 {, a  M1 |9 ^9 }! `
请问如何调用呢?求详细过程,另外C++程序结构比较复杂,显示main函数,然后要调用几个函数,请问要放到一个Method对象里还是拆成好几个Method对象呢?
发表于 2015-4-17 19:12:24 | 显示全部楼层
  1. is: k+ T5 I! L3 C* l$ a
  2.         r:real; file:string;5 r1 o5 j  F! i1 |+ i7 L
  3. do
    ( g) \* S! w; J5 T
  4.         openConsole;
    9 D% l# N. Y9 c+ t+ X+ Y. p/ T
  5. : u! D( D% X' E
  6.         /*# m7 y& j/ B, Y  ^* ^, C5 Z5 w
  7.         file := to_str(ApplicationHome, "\Plant Simulation\C-Interface\cinterf",0 J" y) A. |" @1 p6 z
  8.                                    when is64BitApplication then 64 else 32,
    ( \0 Z$ g' T$ J+ t3 n$ z
  9.                                    "bit.dll");
    2 f' D) \3 G5 H- q
  10.                            */0 d1 N! L9 @3 ~, ~2 ?; G& X$ _5 t
  11.         file := "C:\Users\sun\Documents\Visual Studio 2010\Projects\sg64dll\x64\Debug\sg64dll.dll";* _% H9 d/ M4 t5 ]0 p/ V7 o8 d1 n
  12.         local j := loadLibrary(file);7 ?  {% v4 [: p+ X2 v$ Y) @

  13. , i; e( M  ?1 }$ y3 @
  14.         if j > 0 then) X" k7 i5 \$ x9 b# W
  15.                 print getLoadedLibrary(j)," is loaded.";/ A6 q; ]0 K* A; S+ r2 y6 o

  16. ! S6 `9 m' X0 ^8 A& i4 P
  17.                 r := callLibrary(j, "calcSin", PI/6);
    8 V2 h; U" Q5 I( q) Y7 m* P
  18.                 promptmessage(to_str("sin(PI/6) = ", r));
    9 K; O+ c( o8 b# w# W9 b8 Y
  19.                
    / W: b; R) f' ~! b( Q
  20.                 local str:string;& s! m2 h2 U' p
  21.                 str := "I'm OK!";3 s0 i/ |, }8 P* b; J9 W7 \4 f
  22.                 str := callLibrary(j,"resetStr",str);1 L, f; g. E1 _5 y4 x$ ]* h
  23.                 promptmessage(str);
    % w% t! z% n2 X/ [. I% u. W
  24.                
    + l" K1 s4 ]" K2 K0 {6 u
  25.                 callLibrary(j, "listAccess", Tablefile);
    ( K2 q6 w5 U4 v) d9 w7 E
  26.                
    8 H) I1 e) `) h) F6 \
  27.                 print "Unloading: ", freeLibrary(j);3 R$ {4 A7 e; _5 b3 ?+ Q
  28.         end;
    2 L' k( |3 C7 u  v9 r& y. [
  29. end;9 D/ G9 {/ V$ o7 _
复制代码
 楼主| 发表于 2015-4-18 15:35:36 | 显示全部楼层
sefule 发表于 2015-4-17 19:12
/ N. ~" p* D% a3 ^# u9 ?; U/ P
不好意思我还是想问一下,就是在do里先输入C++程序所在的位置然后直接把C++里的程序复制到后面么?5 N* z$ K2 O( F: L+ C4 I2 X7 j
发表于 2015-4-18 17:49:45 | 显示全部楼层
将C++生成dll,然后引入l调用。5 o0 q  l) ^& a
注意接口参数传递。! Z' r1 j( N3 R. i
) ?: N+ V$ e( `) D! H$ _% W/ k- Y
感觉你理解有偏差,是调用c++的dll。而不是CLR似的混合编程。
发表于 2015-4-18 20:39:23 | 显示全部楼层
不明白你为什么需要调用C++程序,正常是不需要用到的。
 楼主| 发表于 2015-4-19 15:32:35 | 显示全部楼层
dongshui8558 发表于 2015-4-18 20:39 # W! n! q( H- A9 _7 \6 o. r( F4 p
不明白你为什么需要调用C++程序,正常是不需要用到的。

( K. [5 A% v! S; n6 u5 E& L就是我现在手上有一个算法,然后已经有了一个C程序,我想仿真一下这个算法,如果能直接导进去就不用编simtalk语言了
发表于 2015-4-19 16:17:58 | 显示全部楼层
plant自带的例子里面有教你方法,你好好看看。
 楼主| 发表于 2015-4-23 12:52:25 | 显示全部楼层
dongshui8558 发表于 2015-4-19 16:17 * {0 I* g" y3 w$ \. c
plant自带的例子里面有教你方法,你好好看看。

: Z5 K  o0 _' }; L哦哦是《em-plant仿真技术教程》么?还是《plant simulation 生产系统与仿真》呢?麻烦提点一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-9-17 20:20 , Processed in 0.020908 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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