2017-11-11 11 views
1

사용자 정의 프로젝트에서 재생 중이며 LoadLibrary 함수를 사용하여 런타임에 다른 프로젝트 및 링크에 DLL을 만들려고 시도했지만 126 오류를 반환합니다. 인터넷 검색을 많이하지만 대부분의 경우 사람들은 다른 프로그램을 디버깅했습니다. 하지만 내 DLL은 함수 string sayHello() { return "Hello"; }을 포함하고 있습니다. 이 DLL을 성공적으로로드하려면 어떤 프로젝트 옵션을 적용해야합니까? 그리고 함수를 호출? 감사합니다C++ - LoadLibrary가 자체 제작 DLL에 대해 126 오류를 반환합니다.

UDP :

vector<BYTE> decodedDll = base64_decode(base64dll); 
string filename = string("lib.dll"); 
ofstream outfile(filename, ios::out | ios::binary); 
outfile.write((const char*) &decodedDll[0], decodedDll.size()); 
outfile.close(); 
if (!fileExists(filename)) 
{ 
    cout << "DLL file not found " << endl; 
    getchar(); 
    return; 
} 
HINSTANCE hGetProcIDDLL = LoadLibrary((LPCWSTR) filename.c_str()); 
int loadLibraryError = GetLastError(); 
if (hGetProcIDDLL == NULL) 
{ 
    string error = "Could not load DLL\n"; 
    send(s, error.c_str(), error.length(), 0); 
    finishSocketWork(s, address); 
    cout << "Unable to load LIB, error code " << loadLibraryError << endl; 
    getchar(); 
    return; 
} 

(이것은 내가, 클라이언트에서 DLL을받을 지정된 함수를 호출하고 결과를 반환해야하고있어, 대학 작품이다). 그리고 .DLL 전송 좋은 작품 - 파일

+0

std::wstring 당신이'전화 LoadLibrary'에 올바른 경로를 전달하는 확신을 사용

ANSI 매개 변수에 대한 ANSI 버전 LoadLibraryA를 사용? 오류'126'은 "모듈"을 찾을 수 없음을 의미하는'ERROR_MOD_NOT_FOUND'입니다. 당신이하고있는 것을 보여주는 [Minimal, Complete, Verifiable Example] (http://stackoverflow.com/help/mcve)을 포함하도록 질문을 편집 해 주실 수 있습니까? 그리고 [좋은 질문을하는 법을 읽어보십시오.] (http://stackoverflow.com/help/how-to-ask). –

+0

@Someprogrammerdude이 (가) 내 코드를 추가했습니다. 죄송합니다, 나는 몇 가지 누락 된 종속성이 있다고 생각하고 내 코드를 제공 할 필요가 없습니다. –

답변

2
LoadLibrary((LPCWSTR)filename.c_str()); 

동일이 (LPCWSTR) 캐스트를 사용하여 컴파일러 오류를 숨기려고, 일반적인 오류입니다. 여기 캐스팅은 의미가 없습니다. 당신은 정수에서 문자열로 변환하려고 시도한다.

HINSTANCE hGetProcIDDLL = LoadLibraryA(filename.c_str()); 

또는 넓은 문자열 함수

+0

감사합니다. 작동합니다 –