소스 검색

* Hopefully fixed argument size problem on 64-bit windows

git-svn-id: trunk@12601 -
michael 16 년 전
부모
커밋
ee3ac64afb
1개의 변경된 파일4개의 추가작업 그리고 1개의 파일을 삭제
  1. 4 1
      packages/fcl-xml/src/xmliconv_windows.pas

+ 4 - 1
packages/fcl-xml/src/xmliconv_windows.pas

@@ -38,9 +38,12 @@ function errno_location: PInteger; cdecl; external 'msvcrt.dll' name '_errno';
 function Iconv_Decode(Context: Pointer; InBuf: PChar; var InCnt: Cardinal; OutBuf: PWideChar; var OutCnt: Cardinal): Integer; stdcall;
 function Iconv_Decode(Context: Pointer; InBuf: PChar; var InCnt: Cardinal; OutBuf: PWideChar; var OutCnt: Cardinal): Integer; stdcall;
 var
 var
   OutChars: size_t;
   OutChars: size_t;
+  InChars : size_t;
 begin
 begin
   OutChars := OutCnt * sizeof(WideChar);
   OutChars := OutCnt * sizeof(WideChar);
-  Result := iconv(Context, @InBuf, InCnt, @OutBuf, OutChars);
+  InChars:=InCnt;
+  Result := iconv(Context, @InBuf, InChars, @OutBuf, OutChars);
+  InCnt:=InChars;
   OutCnt := OutChars div sizeof(WideChar);
   OutCnt := OutChars div sizeof(WideChar);
   if Result = -1 then
   if Result = -1 then
   begin
   begin