알 수 없는 사용자
2008. 10. 19. 20:14
DLL파일 연결시 '53' 런타임 오류가 발생하였습니다. 메시지가 뜹니다. | etc |
2008-09-23 오후
2:59:02 |
첫번째질문.
VC++에서 OPTPricing.dll 이라는 라이브러리를 만들었습니다.
VB에서 OPTPricing의 함수를 불러오도록 Pricing.exe 를 만들었구요.
실제 VC++에서 Dubug모드에서 Executable for debug session 에 Pricing.exe 를 연결하여
VC++디버그 모드로 실행시키면 잘됩니다.
먼저 OPTPricing.dll을 system32 폴더 및 Pricing.vbp 프로젝트 폴더 에 모두 복사해두었습니다.
Pricing.exe 파일을 직접 실행시키거나 Pricing.vbp 를 디버그 모드로 테스트해보면
'53' 런타임 오류가 발생하였습니다.
파일을 찾을 수 없습니다. : OPTPricing
이라고 나옵니다.
혹시나싶어 command창에서
C:\WINDOWS\system32>regsvr32 OPTPricing.dll
이렇게 실행해보았지만
LoadLibrary("OPTPricing.dll") 실패 - 지정된 모듈을 찾을 수 없습니다.
라는 메시지가 나오네요.
뭐가 문제인지 모르겠습니다. 잘 아시는분 답변 꼭 좀 부탁드립니다. ㅜㅜ
두번째질문.
프로젝트 실행시에 라이브러리 호출시 system32 폴더 및 Pricing.vbp 프로젝트 폴더 중에 어떤
dll파일을 불러오게 되나요?
|
|
|
이 글에 평점 주기:
|
|
|
|
|
|
|
|
|
[답변]훔... |
2008-09-23 오후
3:13:51 |
혹시 그 라이브러리가 문제가 아닐지;;
직접 만드신거라면...다시한번 검토해보는게;
|
|
|
이 글에 평점 주기:
|
|
|
|
|
|
|
|
|
[답변]인수인계 받은 파일입니다. |
2008-09-23 오후
3:26:48 |
실제로 VC++에서 디버그모드로 실행했을때
해당라이브러리를 호출하도록 VB로 만든 실행파일로 실행시 아주 잘됩니다.
^^;;;
혹시나 싶어 def파일을 열어보았으나...
; OPTPricing.def : Declares the module parameters for
the DLL.
LIBRARY "OPTPricing"
DESCRIPTION 'OPTPricing
Windows Dynamic Link Library'
EXPORTS
HW_pricing @1
BDT_pricing @2
;
Explicit exports can go here
이런식으로...아주 잘(?) 선언되어있더군요..
분명 레지스트리에 등록하는 과정이 잘못되어있지 않나 싶은데...이유를 잘 모르겠네요..
regevr32 명령어로 등록도 안되구요. ㅜㅜ
*((?.-)
|
|
|
이 글에 평점 주기:
|
|
|
|
|
|
|
|
|
[답변]흠.. |
2008-09-23 오후
3:33:29 |
그쪽은 저도잘 몰라서..ㅎㄷㄷ;;
도움이 안되서 죄송하네요(__);
|
|
|
이 글에 평점 주기:
|
|
|
|
|
|
|
|
|
[답변]답변... |
2008-09-23 오후
3:38:34 |
첫번째 질문의 답변 :
VB 소스의 Declare 문에 DLL 라이브러리명이 재대로 정의 되어 있는지 확인해 보세요...
혹시... VC 프로젝트에 *.odl 파일이 있지 않나요...?
두번째 질문의 답변 :
1. VB 소스에서 Declare 문에 지정된 DLL 경로를 가장 먼저 검색합니다...
2. VB 프로젝트가 있는 폴더를 검색합니다...
3. Windows/System32 폴더를 검색합니다...
|
|
|
이 글에 평점 주기:
|
|
|
|
|
|
|
|
|
[답변]두번째 질문 답변 감사드립니다. |
2008-09-23 오후
3:47:56 |
*.odl 파일은 없구요..
글에 썼듯이 VC++디버그모드에서 설정된 실행파일(declare 문이 들어있는 VB 프로젝트 실행파일) 로 실행될땐 연결이 잘되고 계산도
잘됩니다.
즉,,,선언부는 문제 없지요..
그냥 실행파일(declare 문이 들어있는 VB 프로젝트 실행파일) 을 실행시켰을때는 해당 DLL파일이 연결안되는거지요.
^^;;;
|
|
|
이 글에 평점 주기:
|
|
|
|
|
|
|
|
|
[답변]vs의 도구중에서 depends 실행하세요. |
2008-09-23 오후
4:09:07 |
depends 실행하셔서 사용하신 dll 선택하시면, 그안에서 참조하고 있는 dll들이 표시될겁니다. 그중에 없는걸로 나오는 dll이
있을꺼에요. 그걸 찾아서 system32폴더에 넣어주심 될거라 생각합니다.
제 경험상에는 그렇네요.^^
|
|
|
이 글에 평점 주기:
|
|
|
|
|
|
|
|
|
[답변]해보았으나..아직도 미해결. ㅜㅜ |
2008-09-23 오후
4:18:34 |
depends를 실행시켜서 확인해보면 포함안되어어 있네요....
라이브러리 자체문제는 아닌듯 싶습니다 ㅠㅠ
|
|
|
이 글에 평점 주기:
|
|
|
|
|
|
|
|
|
[답변]system 폴더나 VB 프로그램 폴더에 넣어보세요 |
2008-09-24 오후
1:36:59 |
system32 말고 system 에도 함 넣어보세요..
아니면 비주얼베이직이 설치되어 있는 프로그램 폴더..
C:\Program Files\Microsoft Visual Studio\VB98 <- 여기
저도 잘은 모르지만 비슷한 현상이 있었는데
여기저기 dll 을 막 복사해 넣다가 됐던적이 있어서.. 혹시하는 마음에 답변 올립니다.
|
|
|
이 글에 평점 주기:
|
|
|
|
|
|
|
|
|
[답변][♣] 이해 안갑니다. |
2008-09-24 오후
10:25:28 |
1. VC에서 DLL 프로젝트로, VB와 연결해서 정상
2. Build된 DLL을 system32에 복사해서 실행해도 안됨
3. 레지스트리에 등록이 안됨
VB내의 Declare문에서 경로가 잘못되지 않았으니, VC에서는 실행이 되었을테구요.
이상으로 너무 희안한 경우를 들어서요. 혹시나 쉬운 부분에서 미스 부분이 없는지도 다시 한번 봐주세요.
VB와 VC의 실행 모듈 첨부해주세요. 궁금하네요.
|
|
|
이 글에 평점 주기:
|
|
|
|
|
|
|
|
|
[답변]regsvr32에서 등록해 보시길... |
2008-09-25 오전
2:19:11 |
안되신다면 다시 그 기준에 맞춰주심이 좋을듯...
|
|
|
|