|
질문할때 마다 느끼는 거지만 문제가 정확히 뭔지 모를땐 설명하기도 어려운거 같애요..
우선 저는 지금 com으로 만든 dll을 포함시켜서 프로그램을 짜는데요..
vc로 잘돼는 프로그램을 cbuilder5에서도 똑같이 작동하게 하는겁니다.
근데
static GUID m_service_guid = { 0x5fc2a42e, 0x144e, 0x4bb5 , {0xb4, 0x3f, 0x4e, 0x61, 0x71, 0x1d, 0x1c, 0x32} };
라고 선언하고 값을 찍어보면
m_service_guid.Data1 = 1606591534,
m_service_guid.Data2 = 5198,
m_service_guid.Data3 = 19381,
m_service_guid.Data4 = ?Naq2Widcomm SDK RFComm Service
이렇게 나오거든요..
여기서 아스키값을 대조해 보니깐 '?Nap 2' 는 {0xb4, 0x3f, 0x4e, 0x61, 0x71, 0x1d, 0x1c, 0x32}
이랑 같습니다.
문제는 vc에서 m_service_guid를 찍어보면 위와 똑같은데 정상적으로 돌아갑니다.
하지만 cbuilder에서는 m_service_guid값을 TSdpService에 할당하고 또 다른 값을 할당하면
m_service_guid를 할당하는 함수가 성공적으로 호출되지 않았는데 다른값을 할당하려고 해서 에러가 났다는 코드를 리턴하거든요.
'TSdpService'가 com server라 내부에서 어떻게 구현되는지 잘모르겠지만
값을 순서대로 할당하지 않으면 뒤의 값을 저장할 수 없게되어있어요.
의논할 사람도 없고 답답합니다.
|