내가 비주얼 스튜디오에서 내 DLL 파일을 작성 외부 DLL 파일을로드하지 않습니다 2010PostgreSQL을 C-기능,
DLL 파일 외부 기능을 가지고있다 (이름 fservice.dll), C 코드 쓰기 ++ (VS2010, 나는 PostgreSQL을에 DLL과 LIB 파일)
char * convert(char *)
DLL 파일 마녀 C-기능을 가지고, 수출과 수입이 있습니다
typedef char* (__cdecl *MYPROC)(char * value);
PG_FUNCTION_INFO_V1(transform);
Datum
transform (PG_FUNCTION_ARGS)
{
HINSTANCE hinstLib= LoadLibrary("fservice.dll");
char * pointer;
text *t = PG_GETARG_TEXT_P(0);
if (hinstLib != NULL)
{
ProcAdd = (MYPROC) GetProcAddress(hinstLib, "convert");
pointer=ProcAdd("text");
FreeLibrary(hinstLib);
}
/*
* code
*/
PG_RETURN_TEXT_P(new_t);
}
, 모드가 존재하지 않기 때문에 나는 문제가 . 쓰기 전에 dll 파일의 경로를 확인합니다. 이 c-function을 컴파일하고, 디버깅 할 때 HINSTANCE hinstLib을 보았을 때 생성되지 않았다. NULL이 아니거나 값이 아니 었습니다. 존재하지 않았습니다. 마지막으로 내 c-function은 내 함수 형식 external dll을 사용하지 않습니다.
어떻게 dll을로드하고 외부 기능을 사용합니까?
외부 함수 형식 dll과 LoadLibrary()가 dll 프로그램에 의해 호출되지 않고 Postgresql에 의해 호출됩니다. 이유는 무엇입니까?
이 디버깅 할 수 있습니다에서 LoadLibrary 및 검사 :이 같은 일 것입니다 프로젝트를 찾을 위치? – Rob
[tag : C++]의 [tag : visual-studio-2010]을 [tag : c]와 (과) 교환 했으므로 태그로 필터링하는 사람들에게 추가적인 힌트를 제공합니다. –
Postgresql에 의해 호출 된 dll 프로그램에서 LoadLibrary()가 호출되지 않았습니다. – pl65