STA、MTA 冲突警告 重要吗?

发布于 2024-10-14 04:44:17 字数 588 浏览 4 评论 0原文

我最近开始为本机 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>

是否有人有任何建议可以帮助我避免将来的痛苦经历,或者我应该不担心它?

I recently started writing a C++/CLI wrapper for a native c++ library. I'm now getting this compile warning

"warning LNK4249: directive '/CLRTHREADATTRIBUTE:STA' conflicts with command line; ignored"

My c++/cli wrapper is set up for MTA in the linker's command line arguments, but I have no idea what file or project is trying to give the STA directive.

I did enough reading to get worried about .NET forcing libraries to become multi-threaded. I've read that this mostly affects my application's use of COM, but I am not really sure if or where my DLL uses COM. I use the interop services to marshal string data and am using 'msclr\auto_gcroot.h' to point to managed classes from unmanaged ones. In the native c++ library that is being wrapped, I include the following headers:

#include <afxwin.h> // MFC core and standard components
#include <afxext.h> // MFC extensions
#include <afxmt.h>
#include "Winsock2.h."
#include <time.h>

Does anybody have any advice that could help me avoid painful experiences in the future, or should I just not worry about it?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

反目相谮 2024-10-21 04:44:18

到目前为止,一切都很好。我还没有看到任何真正的问题;我认为这只是因为MFC是一个单线程库,所以它想这样编译。因此,就我而言,我认为只要我处理所有 MFC 对象以及非线程安全的对象,我就可以了。

So far so good. I haven't seen any real problems with this; I think it is just because MFC is a single threaded library, so it wants to compile that way. So, for my case, I think as long as I treat all MFC objects and such as not thread-safe I'll be okay.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文