안녕하세요.
정성훈.해미입니다.
StrCopy(pPacketInfo->Addr, AnsiString(gSystem.HostIP).c_str());
이렇게 사용해 보세요.
C++에서는 문자열 복사 함수가 StrCopy입니다.
형식
StrCopy(char* dst, char* src)
첫번째 인자 dst부분에는 char포인터인 pPacketInfo->Addr를 사용하시면 되겠고
두번째 인자 src부분은 AnsiString을 char*로 변환해주는 내장함수 c_str()을 사용하여
AnsiString(gSystem.HostIP).c_str() 이렇게 사용하시면 되겠습니다.
만약 gSystem.HostIP이 char*이다면 굳이 AnsiString으로 변환 할 필요없이
StrCopy(pPacketInfo->Addr, gSystem.HostIP);
이렇게 사용하시면 되겠고
gSystem.HostIP이 UnicodeString이라면
내장함수 t_str()을 사용하여 다움과 같이 사용하면 되겠습니다
StrCopy(pPacketInfo->Addr, gSystem.HostIP.t_str());
jinhyun 님이 쓰신 글 :
: c++로 변환하는중인데 StrPCopy 함수가 말썽이네요.
:
:
: StrPCopy(@pPacketInfo^.Addr[0], AnsiString(gSystem.HostIP));
:
:
: 델파이에서는 위와같은 형식으로 썼습니다.
:
: pPacketInfo^.Addr[0] 요너석은
:
:
: Addr: array [0..IP_ADDR_LENGTH - 1] of Byte;
:
:
: 포인터구조체에 이런식으로 선언되어있구요.
:
: 이녀석을 이전버전에서는
:
:
: StrPCopy(&pPacketInfo->Addr[0], AnsiString(gSystem.HostIP));
:
:
: 요런식으로 잘써먹었는데말이죠
:
: 지금 XE5버전에서는 이런식으로는 에러가 뜨네요.
:
:
: [bcc32 Error] NET.cpp(196): E2285 Could not find a match for 'StrPCopy(unsigned char *,AnsiString)'
:
:
: 이런에러와함께요;;..
:
: 타입에 문제가 있는것 같아서,
:
: 이리저리 변환해보았지만 전부 에러가뜨네요..
:
: 이거 방법아실분 혹시 계실까요??