今天在做dll开发的时候,用VC2003编译成功后,心血来潮升级到VC2005,立刻一堆错误,其中一个错误error C2059 syntax error : '__declspec(dllimport)' 破费一番周折。
#ifdef GSMMULTIPORT_EXPORTS
#define GSMMULTIPORT_API __declspec(dllexport)
#else
#define GSMMULTIPORT_API __declspec(dllimport)
#endif
char* GSMMULTIPORT_API __stdcall GSMModemGetSnInfo(char *device,char *baudrate); // error
Google一下之后,发现大篇都是关于C2059这个错误,分析了种种都没有这次的症状。正当放弃之时,一篇微软的解决了所有的问题。
http://support.microsoft.com/kb/117687/zh-cn
标题为“错放的 __declspec 导致错误 C2062、 C2059 或 C 4”,于是将其改为:
GSMMULTIPORT_API char* __stdcall GSMModemGetSnInfo(char *device,char *baudrate);
问题解决。