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错误。