在DLL编程中,导出函数为什么需要 extern "C"
我没加,编译没问题,而且使用也没问题呀,要说在不同编程语言之间共享dll文件的导出函数的话,在函数前加 WINAPI 就够了,为什么要加 extern "C"

解决方案 »

  1.   

    没有问题,extern "C"的作用是,使编译器按照c的方式生成函数名,c的方式实际的函数名和你写的一样。如果没有这个,则按照c++的方式生成函数名,这样实际的函数名(LoadLibrary方式GetProcAddress传入的函数名)和你写得函数名不一样,这样你用LoadLibrary、GetProcAddress这种方式调用dll就不成功。但是用引入库的方式调用,则编译器自动转换函数名,所以总是没有问题。