|
DWORD hcp530_GetDevInfo(DWORD* DevCnt, HPCDEVICEINFO* DevInfo)
위 함수 선언은 입력으로 DWORD형 포인터(주소값)인 DevCnt, 와 HPCDEVICEINFO형 포인터인 DevInfo를 받고
리턴값으로 DWORD를 준다는 얘기구요,
에러의 내용인
[link Error] Unresolved external 'cp530_GerDevInfo' referenced from c:\MotionK\Dll\cp530l1a.OBJ
의 링커시에 발생하는 에러로 cp530l1a.OBJ (<-- cp530l1a.c 를 컴파일 하면 나옵니다) 에
cp530_GerDevInfo 라는 이름의 함수가 없다는 겁니다.
cp530l1a.c 안에 cp530_GerDevInfo 함수가 있는지 확인해 보시기 바랍니다.
오타이신 건지 이름들이 조금씩 틀리네요.. hcp530_GetDevInfo - cp530_GerDevInfo
: 로 사용했는데 '&' 뭔지 잘 모르겠어요..
& 는 주소값을 돌려주는 거구요, 예를 들어 HPCDEVICEINFO* DevInfo 가 함수의 인자로 요구되었으니,
HPCDEVICEINFO DevInfo; 로 변수를 만드셨으면, 이 함수에 사용되는 인자로
DevInfo의 주소값을 주어야 합니다. 즉, &DevInfo 를 주면 됩니다.
박경완 님이 쓰신 글 :
: 이전에 DLL 올리는 부분을 질문했었습니다.다행이 답변의 내용을 들어 해보니 함수는 올라오는데...
: 이넘의 헤더를 잘 이해하지 못해 이렇게 또 질문드립니다.
: 우선 헤더는 3가지를 사용하는 듯합니다.
: cp530l1a.c
: cp530l1a.h
: hicpd530.h
:
: 이전 답변에서 cp530l1a.c,cp530l1a.h를 사용해 보라고 하셔서
: cp530l1a.c 는 프로젝트 Add하여 올렸고
:
: #include "cp530l1a.h"
:
: 하여 정의 하였습니다 그리고 함수를 한번 불러보니 불러지는거 아니겠습니까
: 예]hcp530_GetDevInfo();을 불러보았는데
: 함수 정의는 이렇습니다.
:
: DWORD hcp530_GetDevInfo(DWORD* DevCnt,HPCDEVICEINFO* DevInfo)
:
: 그래서
: {
: DWORD ret;
: DWORD cnt,info;
:
: ret=hcp530_GetDevInfo(cnt,info);
: }
: 해보니 Cannot convert 'long' to 'unsigned long' 가 발생합니다.....흠
: 다른VB소스를 보니 long으로 사용했길래 long으로 넣었는데...안되네요
: 다른 이것저것을 넣어봤는데..고민하다
: {
: DWORD ret;
: DWORD cnt;
: HPCDEVICEINFO info;
:
: ret=hcp530_GetDevInfo(&cnt,&info);
: }
: 하니 Convert 에러는 사라졌습니다.
: 허나
: [link Error] Unresolved external 'cp530_GerDevInfo' referenced from c:\MotionK\Dll\cp530l1a.OBJ
: ...이외 호출하지 않은 함수 포함....
: .
: .
: 해서 발생합니다...제가 함수를 잘못 호출한건지...헤더 정의를 잘못한건지 잘 모르겠네요
: 알려 주세요
: [하나더]
: 제가 중간에 ret=hcp530_GetDevInfo(&cnt,&info);
: 로 사용했는데 '&' 뭔지 잘 모르겠어요...실수란뜻인지?
|