我最近开始为原生 c++ 库编写 C++/CLI 包装器。我现在收到这个编译警告
“警告 LNK4249:指令 '/CLRTHREADATTRIBUTE:STA' 与命令行冲突;被忽略”
我的 c++/cli 包装器是在链接器的命令行参数中为 MTA 设置的,但我不知道哪个文件或项目试图给出 STA 指令。
我做了足够多的阅读来担心 .NET 会强制库变为多线程。我读到这主要影响我的应用程序对 COM 的使用,但我不确定我的 DLL 是否或在何处使用 COM。我使用互操作服务来编组字符串数据,并使用“msclr\auto_gcroot.h”来指向非托管类中的托管类。在被包装的本机 c++ 库中,我包含以下标头:
#include <afxwin.h> // MFC core and standard components
#include <afxext.h> // MFC extensions
#include <afxmt.h>
#include "Winsock2.h."
#include <time.h>
有没有人有任何建议可以帮助我避免将来的痛苦经历,或者我不应该担心它?