主题:EM9000 共有48446人关注过本帖 |
---|
lickson |
1楼 |
![]() |
EM9000 ![]()
X10:
   我们使用VS2005 C#.NET编程,调用自己写的DLL没有问题!但是使用EM9000_ISA_DLL.dll,编译没有问题!运行时候出错,不知道你们有没有解决方法,你们提供的EM9000_ISA_DLL.dll是用EVC编译的,能否在VS下使用,是否有其它办法提供能在VS.NET下调用的DLL,十万火急,昨天因此搞到晚上11点,实在没有办法了!!!请见帖后回复!谢谢! |
单帖管理 | 引用 | 回复 ![]() |
leeleen |
2楼 |
![]() |
![]()
我用VS2005的VC2005试验过,无论编译或运行均没有问题。和你唯一不同的是你用的是C#。但按道理说应该不会VC2005可以但C#2005不行的啊?我们也要试后才能答复你。你自己也试一下。
|
单帖管理 | 引用 | 回复 ![]() |
lickson |
3楼 |
![]() |
![]()
李工:
    您好!希望你帮我编写一个C#的ISA测试程序!只要能调用ISA的函数即可!拜托! |
单帖管理 | 引用 | 回复 ![]() |
lickson |
4楼 |
![]() |
![]()
有情况了吗!
|
单帖管理 | 引用 | 回复 ![]() |
zhl |
5楼 |
![]() |
![]()
我们也需要一些时间,有了结果会及时和你联系。
|
单帖管理 | 引用 | 回复 ![]() |
lickson |
6楼 |
![]() |
![]()
好的!
|
单帖管理 | 引用 | 回复 ![]() |
leeleen |
7楼 |
![]() |
![]()
经过几天的实验,问题已解决,现在向客户报告:
C#使用C++编译的动态链接库的时候,入口点名称发生了变化,请参见如下代码:         const int ISA_P1 = 1;         const int ISA_P2 = 2;         const int ISA_P3 = 3;         const int ISA_P4 = 4;         const int ISA_P5 = 5;         const int ISA_CS0n = 0;         const int ISA_CS1n = 1;         [DllImport("EM9000_ISA_DLL.dll", EntryPoint = "?InitEM9000ISA@@YAHXZ")]         public static extern int InitEM9000ISA();         [DllImport("EM9000_ISA_DLL.dll", EntryPoint = "?Swap2DIO@@YAHH@Z")]         public static extern int Swap2DIO(int Port);         [DllImport("EM9000_ISA_DLL.dll", EntryPoint = "?Swap2ISA@@YAHH@Z")]         public static extern int Swap2ISA(int Port);         [DllImport("EM9000_ISA_DLL.dll", EntryPoint = "?EM9000_WRITE@@YAHHIE@Z")]         public static extern int EM9000_WRITE(int nSeg, uint nOffset, byte Value);         [DllImport("EM9000_ISA_DLL.dll", EntryPoint = "?EM9000_READ@@YAEHI@Z")]         public static extern byte EM9000_READ(int nSeg, uint nOffset);         [DllImport("EM9000_ISA_DLL.dll", EntryPoint = "?SetPortDir@@YAHHH@Z")]         public static extern int SetPortDir(int Port, int Mode);         [DllImport("EM9000_ISA_DLL.dll", EntryPoint = "?GetPortState@@YAHH@Z")]         public static extern int GetPortState(int Port);         [DllImport("EM9000_ISA_DLL.dll", EntryPoint = "?EM9000_INB@@YAEH@Z")]         public static extern byte EM9000_INB(int Port);         [DllImport("EM9000_ISA_DLL.dll", EntryPoint = "?EM9000_OUTB@@YAHHE@Z")]         public static extern int EM9000_OUTB(int Port, byte Value); |
单帖管理 | 引用 | 回复 ![]() |
leeleen |
8楼 |
![]() |
![]()
经过测试的例程已经发给你,请查收。
|
单帖管理 | 引用 | 回复 ![]() |
lickson |
9楼 |
![]() |
![]()
试验成功!
|
单帖管理 | 引用 | 回复 ![]() |