VitAl2013 Posted April 29, 2010 Share Posted April 29, 2010 (edited) 1) AutoIt3Wrapper is 2.0.1.24 2) AutoIt is 3.3.6.1 3) WinAPIEx.au3 is 2.2 4) Code:expandcollapse popup#Region ;**** Directives created by AutoIt3Wrapper_GUI **** #AutoIt3Wrapper_Version=beta #AutoIt3Wrapper_UseUpx=n #AutoIt3Wrapper_UseX64=y #AutoIt3Wrapper_Res_File_Add=c:\Temp\res_file.bla, RCDATA, res_f #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI **** #Include <WinAPIEx.au3> Local $way = "C:\temp" Local $a = "RES" Local $b = "file" Local $where = $way&"\"&StringLower($a)&"_"&StringLower(StringLeft($b, 1))&".bla" Local $what = StringUpper($a)&"_"&StringUpper(StringLeft($b, 1)) MsgBox (64, "$where/what", "$where = "&$where&@CRLF&"$what = "&$what) _ResSaveToFile($where, $what) If @error <> 0 Then MsgBox (64, "error", "@error = "& @error) EndIf Func _ResSaveToFile($sFile, $iRes) Local $hFile, $hInst, $hInfo, $hData, $pData, $tData, $iSize, $iByte $hInst = _WinAPI_GetModuleHandle('') $hInfo = _WinAPI_FindResource($hInst, $iRes, $RT_RCDATA) $hData = _WinAPI_LoadResource($hInst, $hInfo) $iSize = _WinAPI_SizeofResource($hInst, $hInfo) $pData = _WinAPI_LockResource($hData) If @error Then Return SetError(1, 0, 0) EndIf $tData = DllStructCreate('byte[' & $iSize & ']', $pData) $hFile = _WinAPI_CreateFile($sFile, 1) If Not $hFile Then Return SetError(2, 0, 0) EndIf _WinAPI_WriteFile($hFile, DllStructGetPtr($tData), $iSize, $iByte) _WinAPI_CloseHandle($hFile) If $iByte <> $iSize Then Return SetError(3, 0, 0) EndIf Return 1 EndFunc ;==>_ResSaveToFile According CFF.png I have this resource inside. But I have @error=1 - as result it don't write to the disk. Why? What I should do?res_file.zip Edited April 29, 2010 by VitAl2013 Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now