Написал программку для КПК удаления файла в текущей папке. Компилируется и линкуется без проблем, а запустил не работает. Кто знает обьясните в чём проблема? Code (Text): IMPORT DeleteFileW IMPORT ExitThread EXPORT start AREA .text, CODE start eor R0, R0, R0 adr R1, filepath bl DeleteFileW eor R0, R0, R0 bl ExitThread filepath dcb "fuck.doc",0,0,0 END
dcb - это случаем не байты? Как я понял юзается Windows Mobile. DeleteFileW принимает имя файла в юникоде.
Да. Есть хороший асм вытекщий из фасма. http://arm.flatassembler.net/ Вот один из стандартных примеров Code (Text): ; Example of building a WinCE executable using direct coding format PE GUI entry Start section '.text' data code readable writeable executable Start: mov r0,0 ;window owner (NULL) add r1,pc,Text-$-8 ;the text add r2,pc,Caption-$-8 ;the caption mov r3,0 ;style (MB_OK) ldr pc,[pc,MessageBoxW-$-8] ;display message and exit Text du 'Hello WinCE world',0 Caption du 'ARM small PE',0 align 4 data import dw RVA core_imports,0,0,RVA core_name,RVA core_imports rw 5 core_imports: MessageBoxW dw 0x8000035A dw 0 core_name db 'COREDLL.DLL',0 align 4 end data Макрос "du" сам преобразовывает в уникод-строку.
Спасибо.Взял на заметку. А как собственно сконвертить в юникод вручную? И можноли набрать текст в hex кодах?
RedRam Если там, где ты делаешь, то наверное нулями через каждую литеру. Или можно попробовать так: Code (Text): dcw 'f','i','l','e',0 Думаю что да, посмотри в документации к твоему ассемблеру как там правильно писать, или попробуй методом тыка 0x0A или 0Ah (например).
'f','i','l','e',0 'f',0,'i',0,'l',0,'e',0 "f","i","l","e",0 "f",0,"i",0,"l",0,"e",0 не работают((( Есть ещё какие-нибудь идеи помимо hex?
twgt Hello World то пашет на 5+ а вот файл не фига не удаляется( Не факт что в фасме без проблем сработает