设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8230|回复: 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
. m6 q2 a  ?0 ]1 @4 j应该不行吧,这是系统自带的语言,和C不一样

( O. ]! @5 `% R. N好的,谢谢
发表于 2015-4-16 19:56:47 | 显示全部楼层
可以调用C++。
 楼主| 发表于 2015-4-17 09:01:43 | 显示全部楼层
sefule 发表于 2015-4-16 19:56
* t6 W8 w$ U# y+ G/ f7 t可以调用C++。
3 z* t! }/ O) H! @* L: q
请问如何调用呢?求详细过程,另外C++程序结构比较复杂,显示main函数,然后要调用几个函数,请问要放到一个Method对象里还是拆成好几个Method对象呢?
发表于 2015-4-17 19:12:24 | 显示全部楼层
  1. is& z3 r' t8 }7 B8 n0 t
  2.         r:real; file:string;+ b2 l" v3 k8 o! l3 |9 R
  3. do
    + T2 a9 `4 F. b: c
  4.         openConsole;  {" q; [7 ^0 [" b# m- `- Y( M
  5. & o% X* ^+ G& Q0 j* c& T
  6.         /*# a) f# Y- l" b1 U
  7.         file := to_str(ApplicationHome, "\Plant Simulation\C-Interface\cinterf",. x5 k; H) [! ~2 Y; O0 Z/ V9 L
  8.                                    when is64BitApplication then 64 else 32,
    / o3 W0 w$ e: D7 t3 H8 u1 f! \
  9.                                    "bit.dll");
    % ]" j& X7 M2 R' K8 I3 g, {
  10.                            */
    : ]1 n1 @; S5 m7 ~
  11.         file := "C:\Users\sun\Documents\Visual Studio 2010\Projects\sg64dll\x64\Debug\sg64dll.dll";3 t1 n" n* A& m7 a: d7 S6 a
  12.         local j := loadLibrary(file);
    - z3 L) g! ~6 q6 N

  13. # d& z2 {! c+ \$ T2 C+ v2 I$ t6 n
  14.         if j > 0 then
    $ e: R0 C$ Y) c& }- e9 H
  15.                 print getLoadedLibrary(j)," is loaded.";5 E0 }% D% J) A6 M

  16. 1 y; u" ]( `( a  r' N- D4 _
  17.                 r := callLibrary(j, "calcSin", PI/6);- E2 f$ j/ d1 a8 n  k" F  z
  18.                 promptmessage(to_str("sin(PI/6) = ", r));
    7 I5 h: c  [- Z8 N4 B
  19.                
    1 n) `0 L$ C! }9 E: J) T! H0 Q( Y
  20.                 local str:string;
    0 Q) L5 z5 l( b3 `6 c4 t
  21.                 str := "I'm OK!";
    9 A4 Z3 F$ |; S6 s
  22.                 str := callLibrary(j,"resetStr",str);5 j) D) u, b3 F
  23.                 promptmessage(str);
    1 w7 c. x' ^# s) F2 p; }
  24.                
    : X8 B& Y9 S' P+ X4 y/ _1 n
  25.                 callLibrary(j, "listAccess", Tablefile);
    3 q! }/ ?4 a# {6 W! A" T
  26.                
    ; v. K/ \/ ^9 R. o- l% v
  27.                 print "Unloading: ", freeLibrary(j);9 W9 |; a2 o* ]. }# j* a& F$ C
  28.         end;
    " t) ], ]6 M  K- V4 j* D4 U
  29. end;
    : D( m. @3 x: I1 g
复制代码
 楼主| 发表于 2015-4-18 15:35:36 | 显示全部楼层
sefule 发表于 2015-4-17 19:12
3 M- l/ P2 R3 I
不好意思我还是想问一下,就是在do里先输入C++程序所在的位置然后直接把C++里的程序复制到后面么?
9 ?! {4 h' ~! P8 q+ R) I. o
发表于 2015-4-18 17:49:45 | 显示全部楼层
将C++生成dll,然后引入l调用。7 f: [! l( A* F% t4 Y; ^) U
注意接口参数传递。
  E+ P2 b$ _: {- _5 {, a2 h
$ _0 v0 J6 E  C# m; T: v0 P感觉你理解有偏差,是调用c++的dll。而不是CLR似的混合编程。
发表于 2015-4-18 20:39:23 | 显示全部楼层
不明白你为什么需要调用C++程序,正常是不需要用到的。
 楼主| 发表于 2015-4-19 15:32:35 | 显示全部楼层
dongshui8558 发表于 2015-4-18 20:39
0 h2 v# y+ W2 T+ R不明白你为什么需要调用C++程序,正常是不需要用到的。
  S0 ^# Z' ]) {2 Q9 ~
就是我现在手上有一个算法,然后已经有了一个C程序,我想仿真一下这个算法,如果能直接导进去就不用编simtalk语言了
发表于 2015-4-19 16:17:58 | 显示全部楼层
plant自带的例子里面有教你方法,你好好看看。
 楼主| 发表于 2015-4-23 12:52:25 | 显示全部楼层
dongshui8558 发表于 2015-4-19 16:17 6 L% r; ], C) s! S$ F1 O/ V
plant自带的例子里面有教你方法,你好好看看。

; S( E/ ]$ T2 W6 Q. ?哦哦是《em-plant仿真技术教程》么?还是《plant simulation 生产系统与仿真》呢?麻烦提点一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-9-16 00:17 , Processed in 0.019477 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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