Предупреждение о конфликтах STA, MTA Важно?

Недавно я начал писать оболочку C++/CLI для нативной библиотеки C++. Теперь я получаю это предупреждение компиляции

"предупреждение 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>

Есть ли у кого-нибудь совет, который поможет мне избежать болезненных переживаний в будущем, или мне просто не стоит об этом беспокоиться?

1 ответ

Решение

Все идет нормально. Я не видел никаких реальных проблем с этим; Я думаю, что это просто потому, что MFC является однопоточной библиотекой, поэтому она хочет скомпилировать таким образом. Так что, для моего случая, я думаю, что до тех пор, пока я буду обрабатывать все объекты MFC и, например, не ориентированные на многопотоковое исполнение, все будет в порядке.

Другие вопросы по тегам