主题:EM9000

  共有22359人关注过本帖    
lickson
1楼


EM9000  发帖心情 Post By:2007-8-3 8:29:00   [只看该作者]

X10:
   我们使用VS2005 C#.NET编程,调用自己写的DLL没有问题!但是使用EM9000_ISA_DLL.dll,编译没有问题!运行时候出错,不知道你们有没有解决方法,你们提供的EM9000_ISA_DLL.dll是用EVC编译的,能否在VS下使用,是否有其它办法提供能在VS.NET下调用的DLL,十万火急,昨天因此搞到晚上11点,实在没有办法了!!!请见帖后回复!谢谢!

  单帖管理 | 引用 | 回复 回到顶部
leeleen
2楼


  发帖心情 Post By:2007-8-3 9:35:00   [只看该作者]

我用VS2005的VC2005试验过,无论编译或运行均没有问题。和你唯一不同的是你用的是C#。但按道理说应该不会VC2005可以但C#2005不行的啊?我们也要试后才能答复你。你自己也试一下。

  单帖管理 | 引用 | 回复 回到顶部
lickson
3楼


  发帖心情 Post By:2007-8-3 10:42:00   [只看该作者]

李工:
    您好!希望你帮我编写一个C#的ISA测试程序!只要能调用ISA的函数即可!拜托!

  单帖管理 | 引用 | 回复 回到顶部
lickson
4楼


  发帖心情 Post By:2007-8-3 13:13:00   [只看该作者]

有情况了吗!

  单帖管理 | 引用 | 回复 回到顶部
zhl
5楼


  发帖心情 Post By:2007-8-3 13:40:00   [只看该作者]

我们也需要一些时间,有了结果会及时和你联系。

  单帖管理 | 引用 | 回复 回到顶部
lickson
6楼


  发帖心情 Post By:2007-8-3 14:35:00   [只看该作者]

好的!

  单帖管理 | 引用 | 回复 回到顶部
leeleen
7楼


  发帖心情 Post By:2007-8-7 12:48:00   [只看该作者]

经过几天的实验,问题已解决,现在向客户报告:
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楼


  发帖心情 Post By:2007-8-7 12:49:00   [只看该作者]

经过测试的例程已经发给你,请查收。

  单帖管理 | 引用 | 回复 回到顶部
lickson
9楼


  发帖心情 Post By:2007-8-10 15:18:00   [只看该作者]

试验成功!

  单帖管理 | 引用 | 回复 回到顶部

返回首页

EM9000

用户名:
            验证码: 验证码,看不清楚?请点击刷新验证码
内容: