首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

求extern "C" 用法解释,该如何解决

2012-04-10 
求externC用法解释C# codeexternCSAMPLEDLL_APIbool Connect_Net(string ipadd, int portl)extern C

求extern "C" 用法解释

C# code
extern   "C"   SAMPLEDLL_API   bool Connect_Net(string ipadd, int portl);extern "C" __declspec(dllexport) bool Connect_Net(string ipadd, int portl);


我把这句话复制到VS里 就报错
说函数要有返回值

前面加上DLLIMPORT还是报错
C# code
[DllImport("zkemkeeper.dll")]        static private extern bool Connect_Net(string ipadd, int portl);extern   "C"   SAMPLEDLL_API   bool Connect_Net(string ipadd, int portl);


这个东西得怎么用啊 
我现在这个函数在最后一句报错 Connect_Net("com3", 122);无法在 DLL“zkemkeeper.dll”中找到名为“Connect_Net”的入口点。为什么啊 定义对象能调用 直接DLL就调用不了吗
C# code
 public partial class Form1 : Form    {        [DllImport("zkemkeeper.dll")]        static private extern bool Connect_Net(string ipadd, int portl);                public Form1()        {            InitializeComponent();        }        private void Form1_Load(object sender, EventArgs e)        {            //[DllImport("kernel32.dll")]            //public static extern bool Beep(int frequency, int duration);            zkemkeeper.CZKEMClass axCZKEM1 = new zkemkeeper.CZKEMClass();            axCZKEM1.Connect_Net("com3", 122);            Connect_Net("com3", 122);                   }    }


求高手解答

[解决办法]
zkemkeeper.dll 是一个非.net的dll吗?

如果过是,直接DllImport就可以了。

extern "C" 是用在C++里的。
[解决办法]
还有,就是从你的代码看,你已经通过添加引用 引用了zkemkeeper.dll。如果这是一个非.net的dll,那么VS已经自动帮你interop它了。所以你不需要再次DllImport就可以直接使用其中的类及其方法。
[解决办法]
dll文件的,供外部调用

[解决办法]
extern "C" 是用在C++里的
[解决办法]
C++调用C编译器编译的模块时,就要加上extern "C".
[解决办法]
添加对这个dll的引用了吗?

热点排行