我写一个程序时调用一个DLL,编译时出现这一句:
error C2598: linkage specification must be at global scope
对应指着的语句为: 
extern "C" __declspec(dllimport)int ReadPort(unsigned DataAddress, int Data);
怎么改呢?

解决方案 »

  1.   

    有没有定义*.def文件呀
    在里边写出dll的输出的函数
      

  2.   

    补充:
      这个应该和*.def文件的内容无关。*.def只是用来匹配输出函数名的,与此编译错误无关。
      

  3.   

    global scope,没碰到过,
    猜想你的int ReadPort(unsigned DataAddress, int Data)可能不是一个全局函数。
    能不能把你的DLL的结构贴出来。
      

  4.   

    我写的那些代码是不是要放在DLL的构造函数里,或是其它什么地方?我放在构造函数的下面,我是第一次写DLL觉得很麻烦,有无一些最简单的引用DLL的方法不用写这么多代码。
      

  5.   

    实现DLL及显式加载调用的测试代码
    <url>http://www.yangning.com/cgi-bin/topic.cgi?forum=1&topic=33&show=0<url>