Visual Studio 2013에서 C++ dll을 쓰고 있습니다. dll은 ini 파일에서 매개 변수를 읽어야합니다. 그래서이 목적을 위해 함수를 만들었습니다 (ReadConnectionSettings()). 내 정적 변수 serverIP는 함수가 작동하는 동안 적절하게 값을 가져 오지만 변수 (serverIP)를 실행하는 함수가 값을 잃으면 제대로 작동합니다. 무슨 문제가있는 것 같습니까?정적 LPTSTR 변수가 함수 실행 후 값을 잃습니다.
static LPTSTR serverIP = _TEXT("");
void ReadConnectionSettings()
{
TCHAR url[256];
GetPrivateProfileString(_T("Connection"), _T("Url"), _T(""), url, 256, NameOfIniFile);
serverIP = url;
}
'url'은 스택에 할당되고, 메소드가 끝나면 날아가 버립니다. 영구 저장 장치가 더 필요하면 영구 저장 장치 위치가 필요합니다. – dlev
'url'은 로컬에 할당 된 변수이므로 ReadConnectionSettings가 반환 된 후에 해제되므로 serverIP는 해제 된 메모리를 가리 킵니다. 시도해보십시오 :'serverIP = _tcsdup (url);'행운을 빈다. 끝내면 기억을 풀어주는 것을 잊지 마라! –