VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
12
返回列表 发新帖
楼主: frank_jojo

急!在线等。关于在C#中调用非托管.exe程序的问题?

[复制链接]

0

主题

6

帖子

7.00

积分

新手上路

Rank: 1

积分
7.00
发表于 2020-5-8 19:00:02 | 显示全部楼层
这个东西,觉得可能是一种调用约定?
我给MSN写的插件也是不能调用本地文件,否则就出错
回复

使用道具 举报

0

主题

4

帖子

5.00

积分

新手上路

Rank: 1

积分
5.00
发表于 2020-5-15 13:00:02 | 显示全部楼层
TO:freegreat
>>你把方法写到类的外面,应该就可以了。
C++ build error message:
error C2201: 'myAdd' : must have external linkage in order to be exported/imported

>>然后你用depends打开你编辑的dll文件,在里面你可以查看入口函数名。
我看了有这个entry Add,但怎么回事无法调用
回复

使用道具 举报

1

主题

7

帖子

8.00

积分

新手上路

Rank: 1

积分
8.00
 楼主| 发表于 2020-5-17 17:45:01 | 显示全部楼层
TO:freegreat
extern "C" static _declspec(dllexport) double Add(double a, double b){...}

[DllImport("MathFuncsDll1.dll",EntryPoint = "你在depends中看到的名字", CharSet = CharSet.Auto)]
public static extern double Add(double a, double b);
回复

使用道具 举报

1

主题

7

帖子

8.00

积分

新手上路

Rank: 1

积分
8.00
 楼主| 发表于 2020-5-18 12:30:01 | 显示全部楼层
自己顶一下,请各位高手帮忙。

我这里有一个别人开发的绘图程序,用VC6.0开发的。而且有代码。

我现在要开发另一套程序,用.net开发。在这套程序中需要使用绘图程序以便绘制特有图形。所以,我必须在.net程序中调用绘图程序,以便绘图。

请问各位高手,有没有好的解决方案!
回复

使用道具 举报

0

主题

4

帖子

5.00

积分

新手上路

Rank: 1

积分
5.00
发表于 2020-5-20 11:30:01 | 显示全部楼层
1)修改原程序如下:
extern "C" static _declspec(dllexport) double myAdd(double a, double b);
出错:error C2201: 'myAdd' : must have external linkage in order to be exported/imported

2)去掉static就可以了

非常感谢!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

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