gpt4 book ai didi

c# - ICLRRuntimeHost::ExecuteInDefaultAppDomain 无法执行应用程序

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:42:09 24 4
gpt4 key购买 nike

我已使用此代码运行预编译的 C# 应用程序:

ICLRMetaHost *p_meta_host = nullptr;
ICLRRuntimeInfo *p_runtime_info = nullptr;
ICLRRuntimeHost *p_clr_runtime_host = nullptr;
CLRCreateInstance(CLSID_CLRMetaHost, IID_PPV_ARGS(&p_meta_host));
p_meta_host->GetRuntime(L"v4.0.30319", IID_PPV_ARGS(&p_runtime_info));
p_runtime_info->GetInterface(CLSID_CLRRuntimeHost,
IID_PPV_ARGS(&p_clr_runtime_host));
p_clr_runtime_host->Start();
auto hr = p_clr_runtime_host->ExecuteInDefaultAppDomain(
L"C:\\somefolder\\test.exe",
L"InjectExample.Program",
L"EntryPoint",
L"hey!",
&p_return_value);

执行后hr不是S_OK并且GetLastError()返回ERROR_FILE_NOT_FOUND
关键是文件肯定存在于 'C:\\somefolder\\test.exe'
知道为什么会这样吗?

--UPD。在调试日志中发现:

'NetLoader.exe' (Win32): Loaded 'C:\somefolder\test.exe'. 
'NetLoader.exe' (Win32): Loaded 'C:\somefolder\test.exe'.
'NetLoader.exe' (Win32): Unloaded 'C:\somefolder\test.exe'

最佳答案

问题已解决。
显然 hr 等于 COR_E_MISSINGMETHOD0x80131513
这意味着我尝试使用错误的方法。

有关返回码的更多信息,请参见此处: https://referencesource.microsoft.com/#mscorlib/system/__hresults.cs,c4f0369b78643cb0

关于c# - ICLRRuntimeHost::ExecuteInDefaultAppDomain 无法执行应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47620525/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com