Visual C++代码在Code :: Blocks中不起作用

Bal*_*i C 2 c++ codeblocks visual-studio

我有以下代码,我目前用来调用C#Dll中的函数,它在Visual C++中完美运行.

#include <mscoree.h>
#include <stdio.h>
#pragma comment(lib, "mscoree.lib") 

void Bootstrap()
{
    ICLRRuntimeHost *pHost = NULL;
    HRESULT hr = CorBindToRuntimeEx(L"v4.0.30319", L"wks", 0, CLSID_CLRRuntimeHost, IID_ICLRRuntimeHost, (PVOID*)&pHost);
    pHost->Start();
    printf("HRESULT:%x\n", hr);

    // target method MUST be static int method(string arg)
    DWORD dwRet = 0;
    hr = pHost->ExecuteInDefaultAppDomain(L"c:\\temp\\test.dll", L"Test.Hello", L"SayHello", L"Person!", &dwRet);
    printf("HRESULT:%x\n", hr);

    hr = pHost->Stop();
    printf("HRESULT:%x\n", hr);

    pHost->Release();
}

int main()
{
    Bootstrap();
}
Run Code Online (Sandbox Code Playgroud)

问题是,当我将其移动到Code :: Blocks(我更熟悉 - 因为我所做的小C++本机)会引发很多编译器错误.

原始编译器错误是因为它无法找到标头mscoree.h.我在.NET SDK中找到了这个,所以我把它复制到mingw include目录中解决了这个问题,然后我对它找不到的所有其他头文做了同样的事情.

复制完所有标题后,它开始给出一大堆其他错误,与我刚刚移动的标题中的代码有关 - 与下面的代码无关.

当VS直接从蝙蝠上运行时,为什么Code :: Blocks难以运行这个?

谢谢

Bal*_*arq 5

Code :: Blocks是一个很棒的C++编程IDE,但你显然在这里做Windows编程.虽然它是相同的编程语言,但编译器之间并不兼容.

如果您已使用gcc编译器或单个CodeBlocks IDE下载了CodeBlocks版本,则需要配置CodeBlock以使用MS C++编译器.为此,请转到设置>>编译器和调试器>>工具链可执行文件.

此外,在同一选项中,查找搜索目录并在那里放置MS C++编译器头的路径.

完成后,您将能够编译您的程序.