Visual C++에서 완벽하게 작동하는 C# DLL에서 함수를 호출하는 데 현재 다음 코드를 사용하고 있습니다. 내가 코드 :: 블록에이 이동할 때Visual C++ 코드가 Code :: Blocks에서 작동하지 않습니다.
#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();
}
문제이며, (내가 더 잘 알고 - 작은 C로 ++ 나는 기본이었다 수행 한) 컴파일러 오류가 많이 발생합니다.
원래의 컴파일러 오류는 mscoree.h
헤더를 찾을 수 없기 때문입니다. .NET SDK에서이 파일을 찾았으므로이를 해결 한 mingw include 디렉토리로 복사 한 다음 찾을 수없는 다른 모든 헤더에 대해 동일한 작업을 수행했습니다.
모든 헤더를 복사 한 후 방금 이동 한 헤더의 코드와 관련하여 다른 오류가 발생하기 시작했습니다. 아래 코드와 관련이 없습니다.
VS가 방망이를 똑바로 돌릴 때 Code :: Blocks가 이렇게 힘든 시간을 보내는 이유는 무엇입니까?
감사
몇 가지 오류를 게시 할 수 있습니까? 'mscoree.dll'과 링크 할 프로젝트를 설정 했습니까? – Yuushi
나는 여러 가지 헤더에서 '함수가 정의되지 않은'오류를 메모리에서 다시 시도해 볼 것이다. 어떻게 프로젝트를'mscoree.dll'에 링크합니까? –
함수 정의를 찾을 수 없습니다. 링커 오류와 같은 것 같습니다. 나는 Code :: Blocks를 개인적으로 사용하지는 않았지만 아마도 도움이 될 것인가? http://www.learncpp.com/cpp-tutorial/a3-using-libraries-with-codeblocks/ – Yuushi