未解析的外部符号CLRCreateInstance

MathuSum Mut

我在Internet的帮助下编写了一些本机C ++代码,该代码加载.NET Runtime并public static int MethodNameHere(String pwzArgument)从托管程序集中的类调用具有签名的方法:

但是,我似乎无法使用Visual Studio将代码编译到本机DLL(64位)中,因为CLRCreateInstance()似乎存在链接问题,即使我包含"MetaHost.h"在.cpp源文件中也是如此。

这是完整的代码:

#include "MetaHost.h"

extern "C" {
    __declspec(dllexport) DWORD __stdcall CallManagedMethod(LPCWSTR managedDLLPath, LPCWSTR classPathInAssembly, LPCWSTR methodName, LPCWSTR parameter) {
        // Bind to the CLR runtime..
        ICLRMetaHost* pMetaHost = nullptr;
        CLRCreateInstance(CLSID_CLRMetaHost, IID_ICLRMetaHost, (LPVOID*) &pMetaHost);

        ICLRRuntimeInfo* pRuntimeInfo = nullptr;
        pMetaHost->GetRuntime(L"v4.0.30319", IID_ICLRRuntimeInfo, (LPVOID*) &pRuntimeInfo);

        ICLRRuntimeHost* pClrRuntimeHost = nullptr;
        pRuntimeInfo->GetInterface(CLSID_CLRRuntimeHost, IID_ICLRRuntimeHost, (LPVOID*) &pClrRuntimeHost);

        pClrRuntimeHost->Start();

        // Okay, the CLR is up and running in this (previously native) process.
        // Now call a method on our managed C# class library.
        DWORD dwRet = 0;
        pClrRuntimeHost->ExecuteInDefaultAppDomain(managedDLLPath, classPathInAssembly, methodName, parameter, &dwRet);

        // Don't forget to clean up.
        pClrRuntimeHost->Release();

        pRuntimeInfo->Release();
        pMetaHost->Release();
        return dwRet;
    }
}

有什么帮助吗?

汉斯·帕桑特

.h文件不能解决链接问题,它只会添加它们。您链接到的MSDN文章弄乱了记录包含和链接提示的常用方式,“包含为资源”是完全没有帮助的。在C ++中,您必须链接mscoree.lib才能解析符号。它是mscoree.dll的导入库,包含在SDK中。

最简单的方法是#pragma comment(lib, "mscoree.lib")在#include之后添加

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

未解析的外部符号CLRCreateInstance

来自分类Dev

opencv:未解析的外部符号

来自分类Dev

yyparse()的未解析外部符号

来自分类Dev

未解析的外部符号_stricoll

来自分类Dev

SOIL未解析的外部符号

来自分类Dev

未解析的外部符号_stricoll

来自分类Dev

未解析的外部符号 - GRPC

来自分类Dev

未解析的外部符号_CLSID_VdsLoader

来自分类Dev

未解析的外部符号(构造函数)

来自分类Dev

不应存在的随机未解析的外部符号

来自分类Dev

信号上未解析的外部符号

来自分类Dev

MFC静态链接未解析的外部符号

来自分类Dev

未解析的外部符号_QISearch @ 16

来自分类Dev

信号上未解析的外部符号

来自分类Dev

未解析的外部符号(LNK2001)

来自分类Dev

未解析的外部符号(单类C ++)

来自分类Dev

C中未解析的外部符号

来自分类Dev

Windows 过滤平台 - 未解析的外部符号

来自分类Dev

LNK2019未解析的QObject外部符号

来自分类Dev

函数中引用的未解析的外部符号_wcstok

来自分类Dev

Qt未解析的外部符号LNK2019

来自分类Dev

c ++单例尝试:未解析的外部符号

来自分类Dev

LNK2019:带有rapidjson的“未解析的外部符号”

来自分类Dev

未解析的外部符号,没有“被引用”字段

来自分类Dev

Qt 4.8.5 QVariant未解析的外部符号Visual Studio 2012

来自分类Dev

LNK2019未解析的外部符号SHGetFolderPathW

来自分类Dev

LNK2019:未解析的外部符号-隐式DLL

来自分类Dev

c ++单例尝试:未解析的外部符号

来自分类Dev

C ++带有类模板的未解析的外部符号