Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.06.2011, 11:08   #1
Dimarik
Форумчанин
 
Аватар для Dimarik
 
Регистрация: 18.04.2009
Сообщений: 688
По умолчанию Проблема с удалением файла

Необходимо удалить файл. То есть. Нужно щёлкнуть правой кнопкой мыши по файлу и чтобы высветилось в контекстном меню УДАЛИТЬ. Ну и затем передать адрес файла в программу, производящую удаление.
Имеется 2 вопроса:
1. Что в реестре надо сделать, чтобы поместить в контекстное меню возможность вызова моей программы?
2. Каким образом необходимо передать параметры (адрес файла) в программу?
Dimarik вне форума Ответить с цитированием
Старый 24.06.2011, 18:28   #2
Dimarik
Форумчанин
 
Аватар для Dimarik
 
Регистрация: 18.04.2009
Сообщений: 688
По умолчанию

Код:
.586P
;плоская модель памяти
.MODEL FLAT, stdcall
extern DeleteFile@1: near
extern WriteFile@6: near
;подключаем библиотеки
includelib C:\masm32\lib\kernel32.lib;здесь содержатся функции уравления памятью, приложениями, ресурсами, файлами и т.д.

;сегмент данных
_DATA segment
	DB_fileAdress DB 'C:/file.txt',0 ;адрес файла
_DATA ends 

;сегмент кода
_TEXT segment
	start:
		push DB_fileAdress
		call DeleteFile@1
	end start
_TEXT ends
во время линковки выскочили ошибки:



c:\masm32\bin>ml /c delete.asm
Microsoft (R) Macro Assembler Version 6.14.8444
Copyright (C) Microsoft Corp 1981-1997. All rights reserved.

Assembling: delete.asm

c:\masm32\bin>link delete.obj
Microsoft (R) Incremental Linker Version 5.12.8078
Copyright (C) Microsoft Corp 1992-1998. All rights reserved.

delete.obj : warning LNK4033: converting object format from OMF to COFF
LINK : fatal error LNK1561: entry point must be defined

P.S. пишу в MASM. Если не трудно, подскажите, пожалуйста, зачем нужно писать
_TEXT segment - ведь слово _TEXT не зарезервировано (ведь так?) и название определяется пользователем, а компилятор всё равно не понимает что здесь будет находиться именно код?
Или эти сегменты для читабельности программы указываются?
Или же дело немножко иначе состоит. допустим мы хотим в сегменте A объявить переменную lala и в сегменте B объявить переменную lala, то чтобы обратиться из сегмента B к переменной из A, нужно написать:
A:[lala]
и, допустим сделать так (если надо загрузить переменную в eax
mov eax, A:[lala]
подскажите, пожалуйста.
Dimarik вне форума Ответить с цитированием
Старый 25.06.2011, 20:15   #3
MalCer
Форумчанин
 
Аватар для MalCer
 
Регистрация: 15.07.2008
Сообщений: 615
По умолчанию

функция DeleteFile назодится в Kernel32.lib. Остальные либы добавлены просто так
Код:
.386
.model flat,stdcall
option casemap:none

include \masm32\include\windows.inc
include \masm32\include\user32.inc
include \masm32\include\kernel32.inc
includelib \masm32\lib\user32.lib
includelib \masm32\lib\kernel32.lib

.data
	NameProgramm db "C:\test.txt",0

.code
start:
	invoke DeleteFile, addr NameProgramm
	invoke ExitProcess,0
end start
xor eax, eax
xchg [eax], eax
MalCer вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
проблема с удалением массива в vc++ scripto Общие вопросы C/C++ 9 13.12.2010 21:48
проблема с удалением файла katttes Общие вопросы Delphi 3 30.04.2010 13:17
Наполнение файла мусором (перед удалением) Delphi Lime Помощь студентам 5 09.10.2009 11:07
Проблема с удалением файлов. Dj_smart Общие вопросы Delphi 4 22.03.2008 12:32