设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7345|回复: 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 : W& _) N9 r! S3 d. b( i& k
应该不行吧,这是系统自带的语言,和C不一样

' c3 d' z3 s' p8 h! C好的,谢谢
发表于 2015-4-16 19:56:47 | 显示全部楼层
可以调用C++。
 楼主| 发表于 2015-4-17 09:01:43 | 显示全部楼层
sefule 发表于 2015-4-16 19:56
# p5 `' G( N, t: W可以调用C++。
( s8 n* C: k& ?( k7 \
请问如何调用呢?求详细过程,另外C++程序结构比较复杂,显示main函数,然后要调用几个函数,请问要放到一个Method对象里还是拆成好几个Method对象呢?
发表于 2015-4-17 19:12:24 | 显示全部楼层
  1. is
    9 H7 q% f. D, x8 s  O' W, O
  2.         r:real; file:string;3 J: e' N2 q/ s( D  u6 [0 y
  3. do. w  y$ b- ^9 D8 W7 k  m) A
  4.         openConsole;! E/ l: L2 u4 a. r2 e

  5. . |2 @6 z2 r/ ^2 A; F
  6.         /*
    ; e% P( K7 P% [: A
  7.         file := to_str(ApplicationHome, "\Plant Simulation\C-Interface\cinterf",1 S4 y% b' m0 c
  8.                                    when is64BitApplication then 64 else 32,
    - I" H4 D( S! a2 C9 E  q3 f
  9.                                    "bit.dll");! W5 O" G. T! n2 q  {, [  j
  10.                            */+ _, o! Y$ ?8 x+ v& S
  11.         file := "C:\Users\sun\Documents\Visual Studio 2010\Projects\sg64dll\x64\Debug\sg64dll.dll";$ t) y  Z5 s5 d6 I9 Z* ^; d1 Z/ C
  12.         local j := loadLibrary(file);  a+ j- Y% W. r$ r- [4 Y
  13. # C' J* m7 K' T2 r0 X
  14.         if j > 0 then
    . n9 j1 W1 C* R2 U# S
  15.                 print getLoadedLibrary(j)," is loaded.";. V! A2 _5 Y+ t- O  ^' t8 Z

  16. + ~7 y6 m, g) k3 o) X3 ]9 \
  17.                 r := callLibrary(j, "calcSin", PI/6);
    3 z$ t" o8 \2 W$ R$ ?
  18.                 promptmessage(to_str("sin(PI/6) = ", r));
    5 I' e. k9 _( a1 n3 x+ A
  19.                 , ~, S- Q: G  D* t
  20.                 local str:string;1 F3 ^. t9 ~, t3 \1 ^, [7 T- |9 T
  21.                 str := "I'm OK!";
    6 Y1 {, V$ q, r+ i+ H
  22.                 str := callLibrary(j,"resetStr",str);
    ' Q( ^7 M1 J6 G$ N0 K. }1 j& y0 X+ ^
  23.                 promptmessage(str);
      J6 U  }; i" h$ U0 z$ F6 I1 t3 q9 o
  24.                 9 F2 h1 [& I" {/ T# A3 S
  25.                 callLibrary(j, "listAccess", Tablefile);6 a$ A% B& R  J& G
  26.                
    ' Y) K+ I& W6 ^3 B0 F
  27.                 print "Unloading: ", freeLibrary(j);
    ) t0 A5 `2 S9 y4 E
  28.         end;6 |; x  P) \, f- u
  29. end;
    ( A( h; B: m3 `* \. F% W
复制代码
 楼主| 发表于 2015-4-18 15:35:36 | 显示全部楼层
sefule 发表于 2015-4-17 19:12

" s% L* |. s. }. c不好意思我还是想问一下,就是在do里先输入C++程序所在的位置然后直接把C++里的程序复制到后面么?
8 T$ y9 ^+ ~- j- k, o: G
发表于 2015-4-18 17:49:45 | 显示全部楼层
将C++生成dll,然后引入l调用。
# }4 T8 K3 I3 l% ^5 h注意接口参数传递。
$ Q' i" y4 S& F2 X0 k8 X# C* h! ?1 {
感觉你理解有偏差,是调用c++的dll。而不是CLR似的混合编程。
发表于 2015-4-18 20:39:23 | 显示全部楼层
不明白你为什么需要调用C++程序,正常是不需要用到的。
 楼主| 发表于 2015-4-19 15:32:35 | 显示全部楼层
dongshui8558 发表于 2015-4-18 20:39
+ Y6 j- y" E( _不明白你为什么需要调用C++程序,正常是不需要用到的。

7 c7 d- Y) e: t9 B9 [就是我现在手上有一个算法,然后已经有了一个C程序,我想仿真一下这个算法,如果能直接导进去就不用编simtalk语言了
发表于 2015-4-19 16:17:58 | 显示全部楼层
plant自带的例子里面有教你方法,你好好看看。
 楼主| 发表于 2015-4-23 12:52:25 | 显示全部楼层
dongshui8558 发表于 2015-4-19 16:17
& Y5 n$ i1 f1 Z) P, R' Rplant自带的例子里面有教你方法,你好好看看。
8 c0 m$ D* ^$ f- a- l
哦哦是《em-plant仿真技术教程》么?还是《plant simulation 生产系统与仿真》呢?麻烦提点一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-27 20:16 , Processed in 0.015685 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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