Life (삶)/컴퓨터 관련

C++로 만든 DLL, VB에서 호출할때...

험한 세상에서 홀로 살아가는 나그네 2008. 11. 27. 12:32

인터넷 웹검색하고..책 다시 읽어보고.. 이게 왜 않되는것이야..?

하루동안 C++,VB간 호출시 삽질끝에 결론을 내렸다..

다음가 같은 규칙이 있단다..

그래서 뭍어둘라다가 정리를 해본다.

** C++로 만든코드 VB에서 호출시 주의 사항

1. 파라미터 'ByVal'로 사용하기

2. C++에서 Debug모드, Release모드 상관없슴.

3. 반환값 뒤에 __stdcall 사용할것
  --> 호출규정 오류 발생

4. Def파일 생성
  --> 미생성시 DLL입력점 오류 발생

5. vb에서 실행화일(exe)은 Lib경로를 파일명.dll으로 셋팅
  디버깅시 Lib경로를 절대경로로 셋팅해야함.
  (*C로 만든DLL은 절대경로를 주지 않아도 가능하다.)

  cf. vb에서 #Const문을 사용 조건부 컴파일변수를 사용
  (* #Const Dev =1 ; 1이면 True, 0이면 False)

6. C++에서 int 사용시 VB에서는 ByVal Long 사용
7. C++에서 char* 사용시 VB에서 ByVal String 사용

8 데이터형은 가급적이면 표준 데이터형