|
장성호 님이 쓰신 글 :
: 그냥 밑에 해미님의 답변처럼 대입하시면 됩다.
:
: 하지만 꼭 CopyMemory 나 memcpy를 쓰시고자한다면?
: SetLength() 함수로 미리 AnsiString에 메모리를 확보 해놓아야 합니다.
:
: 그냥 AnsiString 선언만 해 놓은상태이면
: char *는 c_str()로 접근할수 있기만 그 포인터가 가리키는 메모리가 확보되지 않는 상황이므로
: 기냥 memcpy하면 access voilation이 나겟죠
:
:
: void __fastcall TForm1::Button3Click(TObject *Sender)
: {
: AnsiString str;
: char *buf="1234567890";
:
: str.SetLength(strlen(buf)); // 메모리 확보 ==> 핵심
:
: CopyMemory(str.c_str(), buf, strlen(buf)); // memcpy(str.c_str(), , buf, strlen(buf));
: // CopyMemory(&str[1], buf, strlen(buf)); // memcpy(&str[1], buf, strlen(buf));
:
: }
: //---------------------------------------------------------------------------
:
: 그럼...
:
:
: AnsiString 님이 쓰신 글 :
: : CopyMemory(ansi.c_str(), szChar, nSize);
: :
: : 이런구분은 먹히질 않는건가요?
: :
: : ansi값은 계속 NULL만 뜨고..
: : szChar값은 정상인데 말이죠..
: :
: : 반대경우만 써보다가..
: :
: : 저렇게 할려니 안되서..
: :
: : 아시는분계시면 도와주세요. ;
|