查看文章 |
C语言调用C++导出函数
2008年08月28日 星期四 12:48
C语言调用C++导出函数(by cici)
最近一网友问我如何实现用纯C语言去调用C++编译的DLL中的导出函数。其实无论是C还是C++都是掉用API来实现各种操作,不过由于C语言缺乏OO,因此更多的时候是用指针而已。1、我们现在C++中导出一个函数: extern "C" _declspec(dllexport) void HelloWord() { ::MessageBoxA(NULL,"Hello world","hehe",NULL); } 2、我们在C语言中可以这样调用: #include "windows.h" void func() { HINSTANCE hLib; FARPROC lpfnDLLProc; hLib = LoadLibrary ("helloworld.dll"); if (hLib) { lpfnDLLProc = GetProcAddress (hLib,"HelloWord"); (*lpfnDLLProc) (); FreeLibrary (hLib); } } int main(int argc, char *argv[]) { func(); return 0; } 怎么样?很简单吧。最后附上源代码:其中C++使用MS的编译器。C使用的是GCC的编译器。 点击此处下载 |
最近读者: