VS跨项目调用全局函数
在一个项目中调用COCOS2D-X里面的base64里的base64Decode
抛错:error LNK2019: 无法解析的外部符号 _base64Decode,该符号在函数XXX中被引用
原因:
Visual Studio by default does not export the names of your functions on the outside of your DLL. To do so you need to tell it that explicitly:
__declspec(dllexport) void f() {...}
and on the side of the one using the DLL:
__declspec(dllimport) void f();
That way the second one will use the imported function and the first will export it.
from: http://stackoverflow.com/questions/7094312/visual-studio-question-about-linking-functions-between-two-projects
解决:
1.外部项目改成static lib
2.显示的添加CC_DLL
#if defined(_USRDLL)
#define CC_DLL __declspec(dllexport)
#else /* use a DLL library */
#define CC_DLL __declspec(dllimport)
#endif
CC_DLL int base64Decode(unsigned char *in, unsigned int inLength, unsigned char **out);
// TODO