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难以运行这个?
谢谢
Code :: Blocks是一个很棒的C++编程IDE,但你显然在这里做Windows编程.虽然它是相同的编程语言,但编译器之间并不兼容.
如果您已使用gcc编译器或单个CodeBlocks IDE下载了CodeBlocks版本,则需要配置CodeBlock以使用MS C++编译器.为此,请转到设置>>编译器和调试器>>工具链可执行文件.
此外,在同一选项中,查找搜索目录并在那里放置MS C++编译器头的路径.
完成后,您将能够编译您的程序.
| 归档时间: |
|
| 查看次数: |
6601 次 |
| 最近记录: |