Visual c++ 访问托管C++;从常规C++; 我试图从一个规则的(无乳房的)C++文件中调用托管C++库中的方法。(除了这个小问题,这真的很好) 我的托管C++代码是: __declspec(dllexport) void ShowMessageBox(int *value) { AutoTagManagedBridge::Class1 work; work.ShowCSharpMessageBox(value); } _declspec(dllexport) void ShowMessageBox(int *value); // ... ACCB1 void ACCB2 MyPluginCommand(void *clientData) { int val = 5; int *result = &val; ShowMessageBox(result); // ... 我的非托管C++代码是: __declspec(dllexport) void ShowMessageBox(int *value) { AutoTagManagedBridge::Class1 work; work.ShowCSharpMessageBox(value); } _declspec(dllexport) void ShowMessageBox(int *value); // ... ACCB1 void ACCB2 MyPluginCommand(void *clientData) { int val = 5; int *result = &val; ShowMessageBox(result); // ... 在非托管C++项目中,我将托管C++项目设置为引用。然而,当我编译时,我得到:

Visual c++ 访问托管C++;从常规C++; 我试图从一个规则的(无乳房的)C++文件中调用托管C++库中的方法。(除了这个小问题,这真的很好) 我的托管C++代码是: __declspec(dllexport) void ShowMessageBox(int *value) { AutoTagManagedBridge::Class1 work; work.ShowCSharpMessageBox(value); } _declspec(dllexport) void ShowMessageBox(int *value); // ... ACCB1 void ACCB2 MyPluginCommand(void *clientData) { int val = 5; int *result = &val; ShowMessageBox(result); // ... 我的非托管C++代码是: __declspec(dllexport) void ShowMessageBox(int *value) { AutoTagManagedBridge::Class1 work; work.ShowCSharpMessageBox(value); } _declspec(dllexport) void ShowMessageBox(int *value); // ... ACCB1 void ACCB2 MyPluginCommand(void *clientData) { int val = 5; int *result = &val; ShowMessageBox(result); // ... 在非托管C++项目中,我将托管C++项目设置为引用。然而,当我编译时,我得到:,visual-c++,managed-c++,Visual C++,Managed C++,严重性代码说明项目文件行抑制状态 错误LNK2019未解析的外部符号“void\uuu cdecl” ShowMessageBox(int*)“(?ShowMessageBox@@YAXPAH@Z)引用于 函数“void\uu cdecl MyPluginCommand(void*)” (?MyPluginCommand@@YAXPAX@Z)BasicPlugin C:\src\AdobePlugin\win32\BasicPlugin.obj 1 当我查看链接命令时,托管C++模块(AutoA

严重性代码说明项目文件行抑制状态 错误LNK2019未解析的外部符号“void\uuu cdecl” ShowMessageBox(int*)“(?ShowMessageBox@@YAXPAH@Z)引用于 函数“void\uu cdecl MyPluginCommand(void*)” (?MyPluginCommand@@YAXPAX@Z)BasicPlugin C:\src\AdobePlugin\win32\BasicPlugin.obj 1

当我查看链接命令时,托管C++模块(AutoAgMaMeDigabyBoo.LIB)未列出:

/输出:“Debug/BasicPlugin.api”/MANIFEST/NXCOMPAT /PDB:“.\Debug/basiclugin.PDB”/DYNAMICBASE“odbc32.lib” “odbccp32.lib”“kernel32.lib”“user32.lib”“gdi32.lib”“winspool.lib” “comdlg32.lib”“advapi32.lib”“shell32.lib”“ole32.lib”“oleaut32.lib” “uuid.lib”/IMPLIB:。\Debug/BasicPlugin.lib”/Debug/DLL/MACHINE:X86 /SAFESEH/INCREMENTAL/PGD:“.\Debug\BasicPlugin.PGD” /子系统:WINDOWS/MANIFESTUAC:“level='asInvoker'uiAccess='false'” /清单文件:“.\Debug\basiclugin.api.intermediate.manifest” /ERRORREPORT:PROMPT/NOLOGO/TLBID:1


我还需要做什么?

找到了答案。为了VisualStudio从托管C++中识别.LIB文件,需要设置非托管项目右击和Projt- >配置属性->链接器>输入-> 其他依赖项->“$(SolutionDir)$(配置)\ManagedDll.lib”