Что нового

DllStructCreate(). Код ошибки = 1. Переданая строка - не строка. (

oesoes

xor eax,eax
Сообщения
171
Репутация
9
Я в этом языке новенький, так что данное поведение поставило меня в тупик:

Код:
AutoItSetOption("MustDeclareVars", 1)

Local Const $PROCESSENTRY32 =      "struct;" & _
							   "DWORD dwSize;" & _
							   "DWORD cntUsage;" & _
							   "DWORD th32ProcessID;" & _
							   "ULONG_PTR th32DefaultHeadID;" & _
							   "DWORD th32ModuleID;" & _
							   "DWORD cntThreads;" & _
							   "DWORD th32ParentProcessID;" & _
							   "LONG pcPriClassBase;" & _
							   "DWORD dwFlags;" & _
							   "CHAR[255] szExeFile;" & _
							   "endstruct"



Local $Result = DllStructCreate($PROCESSENTRY32); @error = 1 - говорит, что не строка
MsgBox(0,0,IsString($PROCESSENTRY32)) ; говорит, что это строка


Из документации АвтоИта:

Success: a variable for use with DllStruct calls.
Failure: sets the @error flag to non-zero.
@error: 1 = Variable passed to DllStructCreate was not a string.
2 = There is an unknown Data Type in the string passed.
3 = Failed to allocate the memory needed for the struct, or Pointer = 0.
4 = Error allocating memory for the passed string.

Объясните пожалуйста, почему так и где я свернул не туда?
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
oesoes,
Надо не "CHAR[255] szExeFile;", а "CHAR szExeFile[255];".
 
Автор
oesoes

oesoes

xor eax,eax
Сообщения
171
Репутация
9
Сбасибос ) Проглядел )
 
Верх