设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6840|回复: 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
4 i6 r5 a3 H3 u( _应该不行吧,这是系统自带的语言,和C不一样

+ Z7 }5 e0 }5 N0 [) S3 {. p4 c好的,谢谢
发表于 2015-4-16 19:56:47 | 显示全部楼层
可以调用C++。
 楼主| 发表于 2015-4-17 09:01:43 | 显示全部楼层
sefule 发表于 2015-4-16 19:56
- S; a; I5 l# n+ h8 Y可以调用C++。

% L6 G0 N) G. x7 ?7 x请问如何调用呢?求详细过程,另外C++程序结构比较复杂,显示main函数,然后要调用几个函数,请问要放到一个Method对象里还是拆成好几个Method对象呢?
发表于 2015-4-17 19:12:24 | 显示全部楼层
  1. is
    3 a/ o0 Q3 Z7 v9 J# H
  2.         r:real; file:string;6 [' E( N! ^3 r5 |
  3. do
    $ }) {9 A& Z7 n( V
  4.         openConsole;
    9 Y; j. c; x' z$ f, z+ T
  5. & `& |. s% w# O7 O, x; I# ]4 ^
  6.         /*
    * t: x8 V4 ]: a3 {
  7.         file := to_str(ApplicationHome, "\Plant Simulation\C-Interface\cinterf",
    * \& q, B) P5 x; Z9 v$ o
  8.                                    when is64BitApplication then 64 else 32,% r# J9 @0 @- h( d
  9.                                    "bit.dll");
    ! ~# y7 l8 p! a1 T( M; U
  10.                            */
    2 E$ D5 f2 v) I$ u( X2 V7 }
  11.         file := "C:\Users\sun\Documents\Visual Studio 2010\Projects\sg64dll\x64\Debug\sg64dll.dll";
    ! r/ m+ o# Z9 m  H# v1 W% G) p
  12.         local j := loadLibrary(file);7 }/ ^. x8 x4 f( V* T5 k

  13. $ y' Q: {* V. n( e9 ?) |, a8 \+ F) f
  14.         if j > 0 then1 F  ^7 m1 t: p7 I$ p$ y5 ]
  15.                 print getLoadedLibrary(j)," is loaded.";
    % C$ C5 l( k8 }

  16. ! E8 ]- i& y+ q, U+ _
  17.                 r := callLibrary(j, "calcSin", PI/6);
    1 l8 ^2 ?: }$ F# U! V6 E1 r
  18.                 promptmessage(to_str("sin(PI/6) = ", r));+ T# r, Q3 x# V
  19.                 ' S8 y" j& s1 ~' h* x$ Y4 e
  20.                 local str:string;
    ; \5 d( \& ?7 O5 K: i, f5 P' ]
  21.                 str := "I'm OK!";7 ^0 o# c) E  F& `. N
  22.                 str := callLibrary(j,"resetStr",str);
    , y# l6 Z" X# L% w
  23.                 promptmessage(str);
    ( m% q# l  r6 z/ ^4 u
  24.                
    % J3 v2 z. }# c4 M  y& j" V# {
  25.                 callLibrary(j, "listAccess", Tablefile);6 V, l' ^6 T8 C( r: l, h1 g
  26.                
    8 w" J- c* s' t0 s
  27.                 print "Unloading: ", freeLibrary(j);+ I$ B6 X4 U6 j7 R, a% X
  28.         end;
    6 G$ m! W5 W1 K" Y: t, }7 t
  29. end;
    0 F4 F7 l% s( I7 Y& g8 H" S
复制代码
 楼主| 发表于 2015-4-18 15:35:36 | 显示全部楼层
sefule 发表于 2015-4-17 19:12
. _! p! M# ~4 g8 T6 y
不好意思我还是想问一下,就是在do里先输入C++程序所在的位置然后直接把C++里的程序复制到后面么?/ b8 w, @; [* q7 {, g5 u0 e
发表于 2015-4-18 17:49:45 | 显示全部楼层
将C++生成dll,然后引入l调用。
5 q) E8 k7 \+ F7 G注意接口参数传递。* [5 ~. j( \& R- ~; q; J' A, y

: l4 r+ f2 V: s4 ~5 Y/ \感觉你理解有偏差,是调用c++的dll。而不是CLR似的混合编程。
发表于 2015-4-18 20:39:23 | 显示全部楼层
不明白你为什么需要调用C++程序,正常是不需要用到的。
 楼主| 发表于 2015-4-19 15:32:35 | 显示全部楼层
dongshui8558 发表于 2015-4-18 20:39 % y% v8 ^- Q$ w3 d; E
不明白你为什么需要调用C++程序,正常是不需要用到的。
2 B. l6 F: J& g! U$ q% }: P
就是我现在手上有一个算法,然后已经有了一个C程序,我想仿真一下这个算法,如果能直接导进去就不用编simtalk语言了
发表于 2015-4-19 16:17:58 | 显示全部楼层
plant自带的例子里面有教你方法,你好好看看。
 楼主| 发表于 2015-4-23 12:52:25 | 显示全部楼层
dongshui8558 发表于 2015-4-19 16:17 2 c/ X" c$ e1 b% l
plant自带的例子里面有教你方法,你好好看看。
3 B2 S* t+ r8 Q# [6 F, S
哦哦是《em-plant仿真技术教程》么?还是《plant simulation 生产系统与仿真》呢?麻烦提点一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-2-28 15:55 , Processed in 0.018974 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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