【发布时间】:2011-01-27 01:11:47
【问题描述】:
我最近开始为原生 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>
有没有人有任何建议可以帮助我避免将来的痛苦经历,或者我应该不用担心?
【问题讨论】:
标签: c++-cli wrapper managed sta mta