|
답변 감사드립니다.
말씀하신대로 할려고 하니까
BOOL ccomm32::opencomm(int nport, DWORD dwbrate)
{
char port[5];
int n_Port[20];
wsprintf(port, "COM%d", nport);
n_Port[nport-1] = CreateFile(port, GENERIC_READ | GENERIC_WRITE, 0, NULL,
OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
중략...
}
DWORD ccomm32::readcomm(BYTE *by, int nlen)
{
int h_Port = gethcomm();
중략...
}
위에 CreateFile 부분과 h_Port = gethcomm(); 부분에 아래와 같은 에러가 나오거든요.
[C++ Error] Comm32.cpp(40): E2034 Cannot convert 'void *' to 'int'
[C++ Error] Comm32.cpp(142): E2034 Cannot convert 'void *' to 'int'
Type이 맞지 않는것 같은데 형변환을 어떻게 하면 되나요?
int h_Port = (int)gethcomm(); 이런식으로 하면 에러는 나지 않는데 n_Port에 888 이란 값으로 들어가거든요.
저도 연구를 해보겠습니다.
그리고 getcomm(),setcomm()는 sethcomm(HANDLE h)로 셋팅한것을 gethcomm()으로 핸들을 반환하는 함수로
만든거에요. WARSHIP 님이 생각하신것이 맞습니다.
HANDLE m_hcomm;
void sethcomm(HANDLE hcomm)
{ m_hcomm = hcomm; }
HANDLE gethcomm()
{ return m_hcomm; }
|