设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6830|回复: 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
7 _% N0 o2 R$ c1 I& O8 K: f应该不行吧,这是系统自带的语言,和C不一样
5 |3 S+ b. J9 [7 t8 ^! |% o
好的,谢谢
发表于 2015-4-16 19:56:47 | 显示全部楼层
可以调用C++。
 楼主| 发表于 2015-4-17 09:01:43 | 显示全部楼层
sefule 发表于 2015-4-16 19:56 . i4 M" z  b2 j( H+ F
可以调用C++。

0 K- V8 T0 y2 U9 W% m请问如何调用呢?求详细过程,另外C++程序结构比较复杂,显示main函数,然后要调用几个函数,请问要放到一个Method对象里还是拆成好几个Method对象呢?
发表于 2015-4-17 19:12:24 | 显示全部楼层
  1. is
    . D9 V  |3 Z4 t" X% X
  2.         r:real; file:string;3 p: I& O, m7 f: q1 L
  3. do
    5 H: E, H. B3 K& d
  4.         openConsole;
    6 v( R. _& {! J" n& g
  5. 7 F- F0 q  h; g4 a5 C1 T
  6.         /*
    1 a: k: O5 n* S
  7.         file := to_str(ApplicationHome, "\Plant Simulation\C-Interface\cinterf",) E" }2 O# t' Q0 O# y
  8.                                    when is64BitApplication then 64 else 32,
    : e5 G  E  a0 x! e7 T, h
  9.                                    "bit.dll");, a9 @! i) d# z- r4 S- k
  10.                            */, r' N0 i* w6 x9 N
  11.         file := "C:\Users\sun\Documents\Visual Studio 2010\Projects\sg64dll\x64\Debug\sg64dll.dll";
    / ?7 o" `# j, [. R, G4 a7 y. y
  12.         local j := loadLibrary(file);
    + }4 a% P  T8 C4 t$ t' i& H

  13. - n- _0 Z0 p  [8 e) z8 x
  14.         if j > 0 then) v8 e, K8 i4 A; J9 H2 R
  15.                 print getLoadedLibrary(j)," is loaded.";* [3 K3 ?# x. w& w3 R/ a3 l3 e' h. p
  16. ( Z' e: v: {8 ]
  17.                 r := callLibrary(j, "calcSin", PI/6);: J0 p& e1 s2 I2 }9 x% a/ h
  18.                 promptmessage(to_str("sin(PI/6) = ", r));( C) d+ U4 l/ L( K! S
  19.                 : O: O/ w3 ]% O+ O: g+ c+ _4 m! I! s
  20.                 local str:string;
    ' ?' w; |% k2 _/ e$ F, I
  21.                 str := "I'm OK!";' h( E, V8 b) O& z
  22.                 str := callLibrary(j,"resetStr",str);
    # w. X+ M8 B3 c# A
  23.                 promptmessage(str);' `( M; u6 ]- |+ N% G# [
  24.                
    $ A: e5 W) J/ }) r
  25.                 callLibrary(j, "listAccess", Tablefile);+ |, u- V2 H4 [& K: c
  26.                 9 T. {1 H8 p. K8 W' o9 {0 `8 l+ y' b
  27.                 print "Unloading: ", freeLibrary(j);: b5 {: E" _4 o; U" p5 d
  28.         end;8 A( w, L- O" a) E1 j4 M
  29. end;& M4 W/ ^: S, _3 i* ]( Z, j. _
复制代码
 楼主| 发表于 2015-4-18 15:35:36 | 显示全部楼层
sefule 发表于 2015-4-17 19:12

0 J/ |- Z4 R! }. y# m% l& [6 k4 a不好意思我还是想问一下,就是在do里先输入C++程序所在的位置然后直接把C++里的程序复制到后面么?
" v. x/ h/ s2 F7 K0 \4 A; l
发表于 2015-4-18 17:49:45 | 显示全部楼层
将C++生成dll,然后引入l调用。: R; \$ Q# X0 _/ E
注意接口参数传递。
3 m1 b! y9 D2 s  [- x) V
4 u) A1 x1 t0 O5 _1 P3 |6 t' S感觉你理解有偏差,是调用c++的dll。而不是CLR似的混合编程。
发表于 2015-4-18 20:39:23 | 显示全部楼层
不明白你为什么需要调用C++程序,正常是不需要用到的。
 楼主| 发表于 2015-4-19 15:32:35 | 显示全部楼层
dongshui8558 发表于 2015-4-18 20:39
2 n/ w; P% V7 ^9 e8 ~0 ^不明白你为什么需要调用C++程序,正常是不需要用到的。
" X( F5 X2 C2 \7 d/ w
就是我现在手上有一个算法,然后已经有了一个C程序,我想仿真一下这个算法,如果能直接导进去就不用编simtalk语言了
发表于 2015-4-19 16:17:58 | 显示全部楼层
plant自带的例子里面有教你方法,你好好看看。
 楼主| 发表于 2015-4-23 12:52:25 | 显示全部楼层
dongshui8558 发表于 2015-4-19 16:17 1 ?  `$ ]0 U  k& P! `0 x- @7 S
plant自带的例子里面有教你方法,你好好看看。

- K7 v- ?& b: Y* k哦哦是《em-plant仿真技术教程》么?还是《plant simulation 生产系统与仿真》呢?麻烦提点一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-2-26 18:46 , Processed in 0.018351 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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