设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6779|回复: 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
2 |8 [# H- f9 U" S/ T4 x1 c应该不行吧,这是系统自带的语言,和C不一样
  C0 }3 m% u$ ^" {& r+ ?
好的,谢谢
发表于 2015-4-16 19:56:47 | 显示全部楼层
可以调用C++。
 楼主| 发表于 2015-4-17 09:01:43 | 显示全部楼层
sefule 发表于 2015-4-16 19:56 1 E5 _. l/ }& M$ M  x0 q
可以调用C++。
2 p& i% r, M7 j/ n
请问如何调用呢?求详细过程,另外C++程序结构比较复杂,显示main函数,然后要调用几个函数,请问要放到一个Method对象里还是拆成好几个Method对象呢?
发表于 2015-4-17 19:12:24 | 显示全部楼层
  1. is1 e: u; P  R1 Z0 H
  2.         r:real; file:string;
    " X' Z9 Y2 I5 x5 k3 \. @, E
  3. do
    - [# Q; v  {  d8 S) c& {
  4.         openConsole;
    ' q8 E# d1 r3 ^# J/ t: M/ I, k* {6 U

  5. ' V& h- i% g% `" S3 a% q. h1 Z
  6.         /*2 E9 B/ ~8 T2 s, [
  7.         file := to_str(ApplicationHome, "\Plant Simulation\C-Interface\cinterf",
    8 b2 r. @. Z) ?
  8.                                    when is64BitApplication then 64 else 32,, _% C6 S* Z& a3 b4 [5 [
  9.                                    "bit.dll");
    " c- ~3 C' d) D: }
  10.                            */" k5 ~! m/ P! y" h5 q; M
  11.         file := "C:\Users\sun\Documents\Visual Studio 2010\Projects\sg64dll\x64\Debug\sg64dll.dll";
    , f5 D( W/ j  s* b8 c; A
  12.         local j := loadLibrary(file);9 ~  h, _7 a; u( c- b" u" q

  13. - i+ B) z! C( V6 h/ c  K" g  c
  14.         if j > 0 then
    + A9 Y, A5 J+ d# ?1 Z' v$ K
  15.                 print getLoadedLibrary(j)," is loaded.";& o8 B; d6 @+ W7 X" H/ R# [5 M) g. l

  16. ! y' @6 P! p, y* O3 Y
  17.                 r := callLibrary(j, "calcSin", PI/6);
    3 f  W5 [# b! f" T8 y
  18.                 promptmessage(to_str("sin(PI/6) = ", r));
      l" j+ l# S+ e2 C% U$ u6 J# L
  19.                
    9 p1 u6 F% G. J  [$ T: e4 j
  20.                 local str:string;
    1 w, U0 a2 P' q( r4 _
  21.                 str := "I'm OK!";4 ]0 c4 ~! \8 d  D# W8 S! ^; h$ f
  22.                 str := callLibrary(j,"resetStr",str);
    9 G; Z4 p, n% }* h; ~
  23.                 promptmessage(str);9 B" `3 [. o! k/ x  h
  24.                 & a- |! F/ A$ X0 M7 k. O% j: K
  25.                 callLibrary(j, "listAccess", Tablefile);
    + t5 u" k5 H9 M: y6 E
  26.                 6 N6 M. i4 z" q
  27.                 print "Unloading: ", freeLibrary(j);
    , Q  |+ C& Y0 u5 r. ?
  28.         end;
    + r: a" B9 U3 D8 {+ @% G9 y) M
  29. end;% W/ M% p7 m1 L" T# N6 ~, j
复制代码
 楼主| 发表于 2015-4-18 15:35:36 | 显示全部楼层
sefule 发表于 2015-4-17 19:12
" y' j" u" D' _* G+ G9 o7 `& s
不好意思我还是想问一下,就是在do里先输入C++程序所在的位置然后直接把C++里的程序复制到后面么?8 P; K3 A& o$ b! U, ^, K
发表于 2015-4-18 17:49:45 | 显示全部楼层
将C++生成dll,然后引入l调用。
! e  f) }6 J( `$ `* [6 I( F注意接口参数传递。: W6 A+ ^5 O: ]! G' Z6 y
0 [% Z2 ]$ b( ?( x! n; B
感觉你理解有偏差,是调用c++的dll。而不是CLR似的混合编程。
发表于 2015-4-18 20:39:23 | 显示全部楼层
不明白你为什么需要调用C++程序,正常是不需要用到的。
 楼主| 发表于 2015-4-19 15:32:35 | 显示全部楼层
dongshui8558 发表于 2015-4-18 20:39   G1 _& o" V& E
不明白你为什么需要调用C++程序,正常是不需要用到的。

/ h" Q" U; w. t$ B- ]# }4 n. y就是我现在手上有一个算法,然后已经有了一个C程序,我想仿真一下这个算法,如果能直接导进去就不用编simtalk语言了
发表于 2015-4-19 16:17:58 | 显示全部楼层
plant自带的例子里面有教你方法,你好好看看。
 楼主| 发表于 2015-4-23 12:52:25 | 显示全部楼层
dongshui8558 发表于 2015-4-19 16:17
* R( l5 J* n+ h$ c8 cplant自带的例子里面有教你方法,你好好看看。
% z7 a  k; a7 R7 M4 w! p4 w% S
哦哦是《em-plant仿真技术教程》么?还是《plant simulation 生产系统与仿真》呢?麻烦提点一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-2-21 08:49 , Processed in 0.015461 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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