definition of dllimport static data member not allowed 另一个检查点

: : definition of dllimport static data member not allowed 

可能是模块的cpp加入到了主工程中造成的,  这个编译时报错的, 而且单独编译可以, 而主工程编译时会报这个error。

所以不一定是因为 模块中未设置里面的预定义宏造成的 。

再次遇到一定要先检查下主工程fillview

 

 

假设我们要编写一个名为`mylib`的动态库,并在另一个源文件中使用该库。可以按照以下步骤进行操作: 1. 创建动态库项目:在Visual Studio中,选择“新建项目”,选择“Win32控制台应用程序”,设置项目名称为`mylib`,勾选“空项目”,然后选择“确定”。 2. 添加源代码文件:在项目中添加源代码文件(例如`mylib.h`和`mylib.cpp`),并编写相应的代码。例如,`mylib.h`可能包含以下内容: ``` #ifdef MYLIB_EXPORTS #define MYLIB_API __declspec(dllexport) #else #define MYLIB_API __declspec(dllimport) #endif MYLIB_API void myFunction(); ``` 其中,`MYLIB_EXPORTS`是自定义宏,用于指示编译器在生成动态库时导出函数。`__declspec(dllexport)`和`__declspec(dllimport)`是Windows平台上用于导出和导入函数的关键字。 `mylib.cpp`文件可以包含以下内容: ``` #include "mylib.h" #include <iostream> void myFunction() { std::cout << "Hello, World!" << std::endl; } ``` 3. 配置项目属性:在Visual Studio中,右键单击项目,选择“属性”,在“配置属性”下选择“常规”,将“配置类型”设置为“动态库(.dll)”,然后点击“应用”和“确定”。 4. 生成动态库:在Visual Studio中,选择“生成解决方案”,或者手动编译项目。这将生成名为`mylib.dll`的动态库文件。 5. 创建使用动态库的项目:在Visual Studio中,选择“新建项目”,选择“Win32控制台应用程序”,设置项目名称为`myapp`,勾选“空项目”,然后选择“确定”。 6. 添加源代码文件:在项目中添加源代码文件(例如`main.cpp`),并编写相应的代码。例如,`main.cpp`可能包含以下内容: ``` #include <windows.h> #include <iostream> typedef void (*MYFUNCTION)(); int main() { HMODULE hDll = LoadLibrary(TEXT("mylib.dll")); if (hDll != NULL) { MYFUNCTION myFunction = reinterpret_cast<MYFUNCTION>(GetProcAddress(hDll, "myFunction")); if (myFunction != NULL) { myFunction(); } else { std::cerr << "Failed to load myFunction!" << std::endl; } FreeLibrary(hDll); } else { std::cerr << "Failed to load mylib.dll!" << std::endl; } return 0; } ``` 其中,`LoadLibrary`函数用于加载动态库,`GetProcAddress`函数用于获取动态库中导出函数的地址,`FreeLibrary`函数用于卸载动态库。 7. 配置项目属性:在Visual Studio中,右键单击项目,选择“属性”,在“配置属性”下选择“VC++目录”,将“包含目录”设置为`mylib`项目的源代码目录,将“库目录”设置为`mylib`项目的生成目录。然后在“配置属性”下选择“链接器”,将“附加依赖项”设置为`mylib.lib`(或者在代码中使用`LoadLibrary`和`GetProcAddress`函数加载动态库)。 8. 生成可执行文件:在Visual Studio中,选择“生成解决方案”,或者手动编译项目。这将生成名为`myapp.exe`的可执行文件,该文件可以使用`mylib.dll`中的函数。 以上就是编写动态库并在另一个源文件中使用该库的基本步骤。需要注意的是,动态库和可执行文件的编译选项和配置可能因平台和开发环境而异,具体实现可能需要根据具体情况进行修改。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值