在 C/C++ 中加载 C# 程序集 mscoree.tlh 错误

nop*_*nop -1 c++

我想在 C/C++ 项目中加载 C# 程序集,因为本机加载器对我来说似乎很酷,但是mscorlib.tlh. 首先,我正在关注代码项目示例(第一个片段)。我创建了一个空的 C++ 项目,起初它似乎没有找到,mscorlib.tlb但是在更改 SDK 版本/平台工具集后,它找到了但有一些错误。

当前设置:

Windows SDK 版本:10.0.17763.0

平台工具集:Visual Studio 2017 (v141)

错误:

1>main.cpp
1>c:\users\admin\desktop\netloader\netloader\debug\mscorlib.tlh(12974): error C2143: syntax error: missing ')' before '||'
1>c:\users\admin\desktop\netloader\netloader\debug\mscorlib.tlh(12974): error C2143: syntax error: missing ';' before '||'
1>c:\users\admin\desktop\netloader\netloader\debug\mscorlib.tlh(12974): error C2059: syntax error: '||'
1>c:\users\admin\desktop\netloader\netloader\debug\mscorlib.tlh(12974): error C2059: syntax error: ')'
1>c:\users\admin\desktop\netloader\netloader\debug\mscorlib.tlh(12974): error C2238: unexpected token(s) preceding ';'
1>c:\users\admin\desktop\netloader\netloader\debug\mscorlib.tlh(12977): error C2143: syntax error: missing ')' before '||'
1>c:\users\admin\desktop\netloader\netloader\debug\mscorlib.tlh(12977): error C2143: syntax error: missing ';' before '||'
1>c:\users\admin\desktop\netloader\netloader\debug\mscorlib.tlh(12977): error C2059: syntax error: '||'
1>c:\users\admin\desktop\netloader\netloader\debug\mscorlib.tlh(12977): error C2059: syntax error: ')'
1>c:\users\admin\desktop\netloader\netloader\debug\mscorlib.tlh(12977): error C2238: unexpected token(s) preceding ';'
1>Done building project "NETLoader.vcxproj" -- FAILED.
Run Code Online (Sandbox Code Playgroud)

截屏:

错误

不知道最新 SDK 中的 mscorlib 有什么问题。还有其他未回答的相关主题。

nop*_*nop 5

我解决了这个问题。这是因为mscorlib.tlh用于or变量名。我所做的只是在导入 mscorlib.tlb 时添加了auto_rename

#import "mscorlib.tlb" auto_rename
Run Code Online (Sandbox Code Playgroud)