2016年2月20日

golang调用c++的dll库文件

摘要: 最近使用golang调用c++的dll库文件,简单了解了一下,特作此笔记: 一、DLL 的编制与具体的编程语言及编译器无关 只要遵循约定的 DLL 接口规范和调用方式,用各种语言编写的 DLL 都可以相互调用。譬如 Windows 提供的系统 DLL (其中包括了 Windows 的 API ),在任何开发环境中都能被调用,不在乎其是 Visual Basic 、 Visual C++ 还是 Delphi 二、dll文件里面需要被其他程序访问的函数必须导出,有2种方法 2.1、通过在.h头文件里面为函数添加 __declspec(dllexport),例如: _declspec(dllexport) int add(int a, int b); 说明:此方式下,如果调用该dll的是一个c++程序(同一个编译器的版本)是没有问题的。但是如果是一个其它语言的程序(如C#、VB),则会出错 因为VC++编译器对于__declspec(dllexport)声明的函数会进行名称转换,如上面的函数会转换为Add@0,这样你在VB中必须这样声明: Declare Function A 阅读全文

posted @ 2016-02-20 20:30 lxsky 阅读(9980) 评论(2) 推荐(1) 编辑

导航