设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8041|回复: 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) ~. x5 }7 x0 |; z% ~& U! l
应该不行吧,这是系统自带的语言,和C不一样
9 g' Z. J- `; M6 f" d4 D! N) D
好的,谢谢
发表于 2015-4-16 19:56:47 | 显示全部楼层
可以调用C++。
 楼主| 发表于 2015-4-17 09:01:43 | 显示全部楼层
sefule 发表于 2015-4-16 19:56   V7 @% \8 d) E% _& y3 l
可以调用C++。
3 y- g8 S- n/ e9 t7 O9 E$ h3 j
请问如何调用呢?求详细过程,另外C++程序结构比较复杂,显示main函数,然后要调用几个函数,请问要放到一个Method对象里还是拆成好几个Method对象呢?
发表于 2015-4-17 19:12:24 | 显示全部楼层
  1. is  c) F4 _7 y: B
  2.         r:real; file:string;3 F& K+ x$ C2 i% o4 f7 c
  3. do, I2 }; N- l2 T2 K% w
  4.         openConsole;
    & g& E' H9 h$ j4 ~
  5. ( m$ e0 T# j( w" K
  6.         /*9 F" a0 {# k& y5 l. }& o' S. _: v
  7.         file := to_str(ApplicationHome, "\Plant Simulation\C-Interface\cinterf",
    & n1 T0 y9 f+ C6 d( g, K
  8.                                    when is64BitApplication then 64 else 32,
    $ K8 j4 i. ~2 r4 x- A
  9.                                    "bit.dll");
    ) y7 s5 P0 l) Q
  10.                            */1 I2 V1 p+ q/ K$ E" b; W( y
  11.         file := "C:\Users\sun\Documents\Visual Studio 2010\Projects\sg64dll\x64\Debug\sg64dll.dll";; {- }2 a/ p5 {! n
  12.         local j := loadLibrary(file);% F/ ^" L. w( a: d6 Y3 V
  13. 8 y. i' g- x' E( g5 b
  14.         if j > 0 then9 C6 ~: [- H- ]- `
  15.                 print getLoadedLibrary(j)," is loaded.";8 d! g% u; S- I& R9 ?; D* ~" C; q. D

  16. " g% Y3 n" n9 z+ Z( Z# f6 n/ G* V( d
  17.                 r := callLibrary(j, "calcSin", PI/6);6 j1 p0 P6 n7 }, d( [
  18.                 promptmessage(to_str("sin(PI/6) = ", r));
    " d7 K) s- Q! D8 O
  19.                
    # ?: v3 K( C& E2 e
  20.                 local str:string;5 e- y/ _' R( a; s2 p$ @; B
  21.                 str := "I'm OK!";% v5 D- @  }# m* o
  22.                 str := callLibrary(j,"resetStr",str);( q! o: K7 _: B* L
  23.                 promptmessage(str);
    ; w6 ]$ C# j( `9 @. s
  24.                
    3 ~9 o8 r  |& |; t3 V' n5 h' h; l
  25.                 callLibrary(j, "listAccess", Tablefile);' _9 t+ ^6 p$ v0 i9 `: \
  26.                
      `; C9 W) y+ N. X! |
  27.                 print "Unloading: ", freeLibrary(j);
    . m/ X+ K4 k6 A1 U
  28.         end;
    : A1 o4 G" g1 E8 F, k; q9 A* S
  29. end;
    # ~) I, }* k) m- v, n- a
复制代码
 楼主| 发表于 2015-4-18 15:35:36 | 显示全部楼层
sefule 发表于 2015-4-17 19:12
7 I4 O  F9 {: h! K( y
不好意思我还是想问一下,就是在do里先输入C++程序所在的位置然后直接把C++里的程序复制到后面么?
, ?& X+ h* ^) Q* {) `1 l5 u7 [
发表于 2015-4-18 17:49:45 | 显示全部楼层
将C++生成dll,然后引入l调用。
; @1 m- r4 Z9 v: Z: o2 B: w注意接口参数传递。: y+ H9 e' y" D/ u$ U4 I
1 |; }# q9 z+ N! w' a8 P0 l, p
感觉你理解有偏差,是调用c++的dll。而不是CLR似的混合编程。
发表于 2015-4-18 20:39:23 | 显示全部楼层
不明白你为什么需要调用C++程序,正常是不需要用到的。
 楼主| 发表于 2015-4-19 15:32:35 | 显示全部楼层
dongshui8558 发表于 2015-4-18 20:39
5 N, x1 o* C7 r8 s+ R3 O+ Y# R不明白你为什么需要调用C++程序,正常是不需要用到的。

0 X0 n. q4 |( F4 o5 t' C7 L- i$ u5 ^就是我现在手上有一个算法,然后已经有了一个C程序,我想仿真一下这个算法,如果能直接导进去就不用编simtalk语言了
发表于 2015-4-19 16:17:58 | 显示全部楼层
plant自带的例子里面有教你方法,你好好看看。
 楼主| 发表于 2015-4-23 12:52:25 | 显示全部楼层
dongshui8558 发表于 2015-4-19 16:17 : `: I- ^, ]: U* Y6 m5 {: V4 K3 L! y
plant自带的例子里面有教你方法,你好好看看。
  }7 E' [0 N) t1 }: f* @
哦哦是《em-plant仿真技术教程》么?还是《plant simulation 生产系统与仿真》呢?麻烦提点一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-8-20 17:04 , Processed in 0.018573 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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