设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6950|回复: 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 " Z* e! @4 {, T& U4 |- w- B
应该不行吧,这是系统自带的语言,和C不一样

! m* a& \& ?+ M+ v  F好的,谢谢
发表于 2015-4-16 19:56:47 | 显示全部楼层
可以调用C++。
 楼主| 发表于 2015-4-17 09:01:43 | 显示全部楼层
sefule 发表于 2015-4-16 19:56
$ ]) ~) N6 C/ A. `& z7 V可以调用C++。

, R/ Z# G% D$ f6 b5 w" c请问如何调用呢?求详细过程,另外C++程序结构比较复杂,显示main函数,然后要调用几个函数,请问要放到一个Method对象里还是拆成好几个Method对象呢?
发表于 2015-4-17 19:12:24 | 显示全部楼层
  1. is
    8 W  s1 A7 H! H* u
  2.         r:real; file:string;" t; z5 L2 p; A5 g" Q' l
  3. do, Q6 a& f- n9 _" T6 ^- D% L
  4.         openConsole;
    " H! T8 W* n, U* V9 [; f

  5. " }# C. {' d1 ~- [0 x7 I8 K
  6.         /*
    4 f& I7 Z* Z" D( A( H( I" Q5 \
  7.         file := to_str(ApplicationHome, "\Plant Simulation\C-Interface\cinterf",5 o, m+ B+ b- ]8 D* z
  8.                                    when is64BitApplication then 64 else 32,; {+ l# r0 ~6 ~1 i- U4 x1 p
  9.                                    "bit.dll");
    ! J8 X) @- J( x# O5 W
  10.                            */
    . W# k  K6 g% m1 W% c0 O+ H  Z( A+ A
  11.         file := "C:\Users\sun\Documents\Visual Studio 2010\Projects\sg64dll\x64\Debug\sg64dll.dll";4 U! J. L$ i# V) y
  12.         local j := loadLibrary(file);
    8 O5 X8 X' G$ g. m$ ^0 G
  13. , s/ v7 ~" U  C
  14.         if j > 0 then6 k  z! P6 _3 n5 O1 l9 r
  15.                 print getLoadedLibrary(j)," is loaded.";
    * v+ k% ]. M/ \7 z1 Z0 ]
  16. & S7 x. g- S1 e4 V2 x# p* o
  17.                 r := callLibrary(j, "calcSin", PI/6);
    * `, u3 k" B( A
  18.                 promptmessage(to_str("sin(PI/6) = ", r));
    / _% {1 a, b3 q) p0 f0 s( f
  19.                 / @* J; h) @1 `& N) \% u( c% k
  20.                 local str:string;2 X% Z+ ?8 x0 J& N$ f4 s( K
  21.                 str := "I'm OK!";
    5 f# x5 {" c7 o2 o) e
  22.                 str := callLibrary(j,"resetStr",str);! L! C' N+ x2 u% Q$ G( S3 o( n- e
  23.                 promptmessage(str);; `  s$ h+ w* L
  24.                 * d$ J* ~' r8 c, b( Y
  25.                 callLibrary(j, "listAccess", Tablefile);' X9 G3 `/ M! Q% E0 c0 R
  26.                
    ! S8 B1 K; |# _1 O7 N* k6 {
  27.                 print "Unloading: ", freeLibrary(j);
    * y  q8 @6 j, R3 g% Y8 F
  28.         end;
    " U, {1 ~8 Q5 |1 |. B
  29. end;
    # C6 `' G* y$ ^) i! R4 E& c
复制代码
 楼主| 发表于 2015-4-18 15:35:36 | 显示全部楼层
sefule 发表于 2015-4-17 19:12
; }$ L8 ]1 K4 B1 N/ r  Z
不好意思我还是想问一下,就是在do里先输入C++程序所在的位置然后直接把C++里的程序复制到后面么?, Y. S& x& c% b+ ?
发表于 2015-4-18 17:49:45 | 显示全部楼层
将C++生成dll,然后引入l调用。
- h% ^" T" k9 s6 C( b8 H注意接口参数传递。
2 S$ ]7 x* D9 K9 t' Z1 H, _% I$ o/ N8 v/ K+ Q: J+ E
感觉你理解有偏差,是调用c++的dll。而不是CLR似的混合编程。
发表于 2015-4-18 20:39:23 | 显示全部楼层
不明白你为什么需要调用C++程序,正常是不需要用到的。
 楼主| 发表于 2015-4-19 15:32:35 | 显示全部楼层
dongshui8558 发表于 2015-4-18 20:39   R9 X7 J7 @( \/ D% z; [
不明白你为什么需要调用C++程序,正常是不需要用到的。
$ _# E; r1 q0 ~# Q. y
就是我现在手上有一个算法,然后已经有了一个C程序,我想仿真一下这个算法,如果能直接导进去就不用编simtalk语言了
发表于 2015-4-19 16:17:58 | 显示全部楼层
plant自带的例子里面有教你方法,你好好看看。
 楼主| 发表于 2015-4-23 12:52:25 | 显示全部楼层
dongshui8558 发表于 2015-4-19 16:17 / F# j4 N  `) [' G" R" t
plant自带的例子里面有教你方法,你好好看看。

  M6 _* U: k$ y  u. B9 o+ ?  c, Y: Z哦哦是《em-plant仿真技术教程》么?还是《plant simulation 生产系统与仿真》呢?麻烦提点一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-19 22:46 , Processed in 0.015681 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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