设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6911|回复: 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 1 h! R, T9 R0 N5 l, u) b
应该不行吧,这是系统自带的语言,和C不一样

# r: N( p- w( g+ t7 ~$ z9 a& h. }好的,谢谢
发表于 2015-4-16 19:56:47 | 显示全部楼层
可以调用C++。
 楼主| 发表于 2015-4-17 09:01:43 | 显示全部楼层
sefule 发表于 2015-4-16 19:56
' p& L1 h* N' L" {% x" B0 c  \可以调用C++。

" l; Q% Y( b! D/ H+ x请问如何调用呢?求详细过程,另外C++程序结构比较复杂,显示main函数,然后要调用几个函数,请问要放到一个Method对象里还是拆成好几个Method对象呢?
发表于 2015-4-17 19:12:24 | 显示全部楼层
  1. is
    * z/ D7 h1 ~6 o) l% N! b7 Q" O$ S- o
  2.         r:real; file:string;
    : F0 L1 q3 ^6 M% F
  3. do7 ?3 N- F/ q: z9 C3 W- K3 |2 a
  4.         openConsole;
    1 [  Y7 ]. H% o
  5. $ R% t# c. b" A$ F
  6.         /*
    * Z; G, i1 U! c1 O
  7.         file := to_str(ApplicationHome, "\Plant Simulation\C-Interface\cinterf",
    ) ?& s3 j8 D+ B4 L3 m0 J
  8.                                    when is64BitApplication then 64 else 32,
    ; s: a- z1 e9 {3 b1 c
  9.                                    "bit.dll");/ X7 T( x) a8 Z  Y, Y
  10.                            */1 ~% q1 K5 q+ o# Q/ e4 l
  11.         file := "C:\Users\sun\Documents\Visual Studio 2010\Projects\sg64dll\x64\Debug\sg64dll.dll";$ I& F" [; k" M
  12.         local j := loadLibrary(file);6 t1 o: `& Q! F' ~) E1 l. M
  13. & o: K, m7 M4 @. u) s' H
  14.         if j > 0 then: n/ z- H) W9 o5 e
  15.                 print getLoadedLibrary(j)," is loaded.";" b+ C' j3 |8 z: y, S

  16. 8 l: `% H& [" _) n
  17.                 r := callLibrary(j, "calcSin", PI/6);
      ?0 z/ y1 x/ a4 c% D' L2 F) {
  18.                 promptmessage(to_str("sin(PI/6) = ", r));
    / t6 {3 C3 O; {2 U; p8 c: Y9 z# b/ ^
  19.                
    0 u* E5 A' D6 H' A
  20.                 local str:string;
    % H, }9 V+ c( U" L: `2 S( H4 C' \
  21.                 str := "I'm OK!";
    8 D0 ~5 s- |- [% q
  22.                 str := callLibrary(j,"resetStr",str);4 y, f+ F; D& d- h' W! I3 r) `+ S
  23.                 promptmessage(str);# o! [; n* q9 y: J3 K+ o0 [
  24.                 , T+ C3 d; K) \! B# ]4 W
  25.                 callLibrary(j, "listAccess", Tablefile);
    ( L4 f/ Z  p& r1 h
  26.                
    . J" Z4 @9 c" S2 b& q% M% ~, f/ N
  27.                 print "Unloading: ", freeLibrary(j);( B+ I# P" G* d1 Y, ~
  28.         end;
    & n& G* o8 e5 x
  29. end;
    7 m( E3 b' ]. Y, X: \
复制代码
 楼主| 发表于 2015-4-18 15:35:36 | 显示全部楼层
sefule 发表于 2015-4-17 19:12
1 c/ ]6 J0 d0 m7 R2 n
不好意思我还是想问一下,就是在do里先输入C++程序所在的位置然后直接把C++里的程序复制到后面么?
# A$ q* j. A$ _  \# Z/ J. t0 b) o
发表于 2015-4-18 17:49:45 | 显示全部楼层
将C++生成dll,然后引入l调用。
+ l* l1 S: d3 _* ~% C注意接口参数传递。, `4 |3 d9 x: I, a2 O3 @

$ T; z( c' J4 \! f$ A感觉你理解有偏差,是调用c++的dll。而不是CLR似的混合编程。
发表于 2015-4-18 20:39:23 | 显示全部楼层
不明白你为什么需要调用C++程序,正常是不需要用到的。
 楼主| 发表于 2015-4-19 15:32:35 | 显示全部楼层
dongshui8558 发表于 2015-4-18 20:39 ) M9 V7 I: Y2 d! [
不明白你为什么需要调用C++程序,正常是不需要用到的。
1 G% k4 S) e" ~% O$ t- W" q1 z
就是我现在手上有一个算法,然后已经有了一个C程序,我想仿真一下这个算法,如果能直接导进去就不用编simtalk语言了
发表于 2015-4-19 16:17:58 | 显示全部楼层
plant自带的例子里面有教你方法,你好好看看。
 楼主| 发表于 2015-4-23 12:52:25 | 显示全部楼层
dongshui8558 发表于 2015-4-19 16:17
/ z9 L. y4 Z( D0 \" mplant自带的例子里面有教你方法,你好好看看。
/ [# L# O( ~. S0 |' F  \
哦哦是《em-plant仿真技术教程》么?还是《plant simulation 生产系统与仿真》呢?麻烦提点一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-12 17:15 , Processed in 0.018849 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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