VS工程调用动态库时,编译通过后,运行时报如下错误:
动态库编译使用的export,import宏如下:
#if defined(_WIN32) /* Windows - set up dll import/export decorators. */ # if defined(DLL_EXPORT) /* Building shared library. */ # define API_EXTERN __declspec(dllexport) # elif defined(DLL_IMPORT) /* Using shared library. */ # define API_EXTERN __declspec(dllimport) # else /* Building static library. */ # define API_EXTERN /* nothing */ # endif #elif defined (__GNUC__) && (__GNUC__ >= 4) # define API_EXTERN __attribute__((visibility("default"))) #else # define API_EXTERN /* nothing */ #endif
问题来了:VS 工程编译动态库时如果没使用预编译宏 DLL_EXPORT,调用动态库时又没有使用宏 DLL_IMPORT时,就会出现0xc000007b错误。