ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
Закрытая тема
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 13.10.2007, 09:52
Аватар для NeXArmAor
NeXArmAor
Участник форума
Регистрация: 21.04.2007
Сообщений: 289
Провел на форуме:
4612647

Репутация: 368
По умолчанию

Нид хелп,сейчас мучаю одно творение,и возникла одна "маленькая проблема",дело в том что при использовании функции lstrcat возникает некоторые лаги,эта функция соединяет два буфера в один,но происходит мерзостная бага когда ее используеш часто. Т.е допустим нужно соединить C:\WINDOWS с regedit.exe. На первый раз все клеит удачно,но потом возникает необходимость еще одного комбинирования,типа dir с C:\WINDOWS\regedit.exe и тут повляется своеобразный мусор,типа "dir C:\WINDOW\regedit.exe :7: 444353" откуда берутся эти символы не понятно. В чем проблема? Сорри,если вопрос ламо...реально надо понять в чем проблема. Надо как то очищать буфер?

Последний раз редактировалось NeXArmAor; 13.10.2007 в 09:54..
 

  #2  
Старый 13.10.2007, 13:20
Аватар для Ky3bMu4
Ky3bMu4
Постоянный
Регистрация: 03.02.2007
Сообщений: 520
Провел на форуме:
1777536

Репутация: 932


Отправить сообщение для Ky3bMu4 с помощью ICQ
По умолчанию

1)На конце regedit.exe поставь мой любимый разделитель("_") , а потом начиная с конца конца закидай буффер нулями.
2)Сначала "склей" dir и C:\\... , а потом regedit.exe
3)Юзай wsprintf . Это найлучший и надёжнейший метод.
 

  #3  
Старый 13.10.2007, 13:37
Аватар для NeXArmAor
NeXArmAor
Участник форума
Регистрация: 21.04.2007
Сообщений: 289
Провел на форуме:
4612647

Репутация: 368
По умолчанию

Ky3bMu4,thx...примерчик подкинь с wsprintf плз. Если знаеш
 

  #4  
Старый 13.10.2007, 13:55
Аватар для Ky3bMu4
Ky3bMu4
Постоянный
Регистрация: 03.02.2007
Сообщений: 520
Провел на форуме:
1777536

Репутация: 932


Отправить сообщение для Ky3bMu4 с помощью ICQ
По умолчанию

Примерно так:
Код:
....................
.const
xz db '%s%s',0
st1 db 'dir',0
st2 db 'C:\\',0
...................
.code
Main PROC
LOCAL st3:BYTE ; склееная строка будет здесь
invoke wsprintf , st3 , xz , st1 , st2
.....................
 

  #5  
Старый 13.10.2007, 14:24
Аватар для Ni0x
Ni0x
Постоянный
Регистрация: 27.08.2006
Сообщений: 367
Провел на форуме:
2009677

Репутация: 472
По умолчанию

Ky3bMu4, автограф дашь? Честное слово, таких мастеров еще не видел. Особенно понравился твой код. Верх программерского мышления! Он наверное outpost обходит, путем вызова исключения, я угадал?
NeXArmAor, msdn говорит чтонибудь? Прочитал бы для начала про lstrcat, там вроде ясно написано, что строка должна закнчиваться '\0', но читать справку не модно, понимаю.
Цитата:

LPTSTR lstrcat(
LPTSTR lpString1,
LPTSTR lpString2
);

Parameters
lpString1
[in, out] Pointer to a null-terminated string. The buffer must be large enough to contain both strings.
lpString2
[in] Pointer to the null-terminated string to be appended to the string specified in the lpString1 parameter.
С wsprintf таже ситуация, ну конечно тебе нужен пример, ведь без примера ты ничего не поймешь. Если я не ошибаюсь, ты автор N-Joiner Asm Version, тогда вопрос, у кого ты украл исходники, если не знаешь таких элементарных вещей?
 

  #6  
Старый 13.10.2007, 14:31
Аватар для NeXArmAor
NeXArmAor
Участник форума
Регистрация: 21.04.2007
Сообщений: 289
Провел на форуме:
4612647

Репутация: 368
По умолчанию

NiOx, не остри плз. Я автор N-Joy и я не крал исходники ни у кого. А на счет справки ты прав,я ее не читал. Ну я конечно понимаю,ты гуру ассемблера,для тебя все элементарно,но уж извини не дошел я до такого ранга еще.
 

  #7  
Старый 13.10.2007, 14:52
Аватар для Ni0x
Ni0x
Постоянный
Регистрация: 27.08.2006
Сообщений: 367
Провел на форуме:
2009677

Репутация: 472
По умолчанию

Начнем с того, что я не считаю себя гуру ассемблера и насчет ранга я не понял. Какое отношение lstrcat имеет к ассемблеру? То что ты не знаешь банальных вещей про нулевой символ и при этом пишешь джоинер - это нонсенс я считаю. Удачи.
 

  #8  
Старый 13.10.2007, 14:57
Аватар для NeXArmAor
NeXArmAor
Участник форума
Регистрация: 21.04.2007
Сообщений: 289
Провел на форуме:
4612647

Репутация: 368
По умолчанию

NiOx, а для того чтобы написать джойнер совсем не обязательно знать про нулевой символ.
 

  #9  
Старый 13.10.2007, 15:04
Аватар для inv
inv
Banned
Регистрация: 03.08.2007
Сообщений: 313
Провел на форуме:
951141

Репутация: 291
По умолчанию

Ni0x да ладно тебе)я видел похлеще....))))
Большинство здесь решают какие-то определенные задачи ,они не изучают язык...но это опять же их право,а то что после написания джойнера они не стесняются задавать такие вопросы...ну хз.
 

  #10  
Старый 13.10.2007, 18:33
Аватар для _Great_
_Great_
Флудер
Регистрация: 27.12.2005
Сообщений: 2,372
Провел на форуме:
5339610

Репутация: 4360


Отправить сообщение для _Great_ с помощью ICQ
По умолчанию

Цитата:
Сообщение от NeXArmAor  
NiOx, а для того чтобы написать джойнер совсем не обязательно знать про нулевой символ.
Ну да, вероятно для того, чтобы написать ОС, совсем не обязательно знать устройство компьютера и процессора в частности. Достаточно лишь покидать понтов, натырить у всех кода и скзать - смотрите, какой я крутой, я написал это сам!

Цитата:
Сообщение от Ky3bMu4  
1)На конце regedit.exe поставь мой любимый разделитель("_") , а потом начиная с конца конца закидай буффер нулями.
2)Сначала "склей" dir и C:\\... , а потом regedit.exe
3)Юзай wsprintf . Это найлучший и надёжнейший метод.
Со своим любимым разделителем и такими советами знаешь куда тебе надо?
 
Закрытая тема





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ