getprivateprofilestring 예제

이 클래스는 특별히 잘 설계된 클래스가 아닙니다. 나는 그것을 빨리 썼다. 그것은 적당히 어려운 interop의 예로 여기에 게시됩니다; 특히 “다중 문자열”은 이중 null-종료되고 포함된(단일) null을 포함할 수 있는 단일 버퍼를 의미하는 다중 문자열 값을 읽는 방법입니다. lpFileName에 의해 지정된 초기화 파일이 없거나 잘못된 값을 포함하는 경우 이 함수는 `0x2`(파일을 찾을 수 없음)의 값으로 errorno를 설정합니다. 확장 오류 정보를 검색하려면 GetLastError를 호출합니다. 대부분의 .NET 응용 프로그램은 이전 INI 파일 형식에 액세스할 필요가 없으므로 Microsoft는 .NET 프레임워크에 포함하지 않기로 결정했습니다. .config 파일부터 레지스트리에 이르기까지 여러 가지 다른 옵션을 사용할 수 있습니다. 그러나 이전 INI 파일을 읽어야 하는 몇 가지 상황이 있습니다. GetPrivateProfileString 함수는 lpAppName 매개 변수에 의해 지정된 섹션 제목 아래lpKeyName 매개 변수에 의해 지정된 이름과 일치하는 키에 대해 지정된 초기화 파일을 검색합니다. 키를 찾으면 함수는 해당 문자열을 버퍼에 복사합니다. 키가 없는 경우 함수는 lpDefault 매개 변수에 의해 지정된 기본 문자열을 복사합니다. 초기화 파일의 섹션에는 다음 양식이 있어야 합니다.

문제는 지정되지 않은 매개 변수에 대해 null이 아닌 0을 전달해야 한다는 것입니다. 다음은 잘 관리되는 API입니다: null lpAppName 또는 null lpKeyName을 전달하여 모든 섹션 이름을 얻어야하는 경우 GetPrivateProfileSection에 표시되는 것과 같은 기술을 사용하여 이중 null 종료 결과를 처리해야합니다. . NET의 마샬러는 찾은 첫 번째 null에서 StringBuilder를 트렁킨다. ImportsSystem.Runtime.InteropServices 가져오기 시스템.Text Module1 개인 선언 자동 함수 GetPrivateProfileString Lib “kernel32” (문자열로 ByVal lpAppName, _ 문자열로 byVal lpKeyName, _ byVal lpDefault 문자열로_ byVal lpReturnedString StringBuilder, _ ByVal nSize as 정수, _ByVal lpFileName 문자열로) 정수 하위 Main() 디에이션 스탭 SB = 새 StringBuilder(500) res = GetPrivateProfileString(“앱이름”, “키네임”, “”” sb, sb, sb)로 희미한 리 용량, “c:test.ini”) Console.WriteLine(“GetPrivateProfileStirng 반환: ” 및 res. ToString()) 콘솔.WriteLine(“키 이름은 : ” 및 sb입니다. ToString()) 엔드 서브 엔드 모듈은 ini2reg 스타일 프로그램(기존 INI 파일을 읽은 다음 적절한 레지스트리 항목을 작성하는 프로그램)에서 테스트 개발을 수행하는 동안 이 클래스를 작성하여 정보가 레지스트리에서 읽히도록 합니다. MSDN: GetPrivateProfileString, MSDN: INF Ini2Reg 및 MSDN: NT 리소스 키트, 장 26).

Share on FacebookPin on PinterestTweet about this on TwitterShare on TumblrShare on Google+Digg this