我想在 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 有什么问题。还有其他未回答的相关主题。
我解决了这个问题。这是因为mscorlib.tlh用于or变量名。我所做的只是在导入 mscorlib.tlb 时添加了auto_rename。
#import "mscorlib.tlb" auto_rename
Run Code Online (Sandbox Code Playgroud)