|
안녕하세요 수야입니다.
그게 어떤경우의 에러인지는 잘은 모르겠습니다.
하지만 아래 문법이 틀린부분이 있는데요
C에서는 경로를 입력할때 \\ <- 요렇게 쓰도록 되어있죠
아니면 UNIX 처럼 /를 쓰셔도 무방합니다.
아마도 읽어올 dll화일이 없어서 뜨는 멧시지 같군요
왜냐면
c:\02072\cl32.dll 라는 화일은 있지 않을테니까요
cl32.dll이란 화일이 있는것이고 그 위치는
c:\\02072겠죠
c:\\02072\\cl32.dll로 고쳐보시구요
그래도 안된다하시면 해당 프로젝트가 있는 경로로 cl32.dll을 카피하셔서 사용하시구
경로및 화일명은 그냥 cl32.dll로 주도록하세요
수야여씀미닷
임양규 님이 쓰신 글 :
: 이곳에서 많은 도움을 받고 있는 초보자랍니다.
:
: 어렵게 LoadLibrary를 이용해서 컴파일에는 성공했는데, 실행하고 나서 [버튼]을 누르면,
:
: 이런 에러가 나옵니다...
:
: Project1.exe raised exception class EAccess Violation with message 'Access violation at address 00000000. Read of address 00000000'.
:
: 이런 에러는 어떤경우에 발생하나요???
:
:
: 참고로 제가 작성한 소스는 다음과 같습니다...
:
: 커맨드 버튼을 누르면 cryptAddRandom 함수를 호출한 후, 결과값을 화면에 보여주려고 합니다.
:
: void __fastcall TForm1::Button1Click(TObject *Sender)
: {
: HINSTANCE MainDll;
: MainDll = LoadLibrary("c:\02072\cl32.dll");
: int (__stdcall* cryptAddRandom)(const void*, const int);
: cryptAddRandom = (int (__stdcall*)(const void*, const int))GetProcAddress(MainDll, "cryptAddRandom");
: int i=cryptAddRandom(NULL, 3);
: ShowMessage(IntToStr(i));
: FreeLibrary(MainDll);
:
: }
|