Дружище, не обид, но ты дебил. Подсказываю, как я это понял. Ты смотришь настройки в разделе "C/C++", потом ругаешься, что они не работают в "HTML/JS", потом кричишь, что VS - говно, и тебе приходится еще и сторонний редактор использовать. Интересно, а чего ты ожидал, чтобы настройки для С++ работали вообще для всех типов файлов, так что ли? Или для тебя непосильный труд раз в жизни зайти в раздел настроек, настроить форматирование, автокомплит, интеллисенс и прочее для всех языков, которые тебе нужны, по отдельности? Короче... Вон из профессии!
От дебила слышу, специалист хренов. Настройки С++\html одинаковые, раз. Я не говорил, что VS гавно, два. Очень даже хороший редактор.
Круто. Я даже дар речи потерял. Давай по пунктам. Ты этой фразой практически отправил меня в ментальный нокаут. Видишь ли... Настройки форматирования для С/C++, для C#, для VBasic, для CSS, для XML, для HTML, для JS находятся в РАЗНЫХ разделах настроек. Повторяю, В РАЗНЫХ! Как?! Как они могут быть одинаковыми? Может быть, ты мне скажешь, где в настройках для C/C++ находятся такие параметры, как "Auto insert close tag", "Insert attribute valeu quotes when typing" и прочие? (это я щас прямо из настроек студии цитирую. если ты не веришь - посмотри сам, если сумеешь) Насчет говна - я утрировал, чтобы лучше донести до тебя свой пост. Не вышло. VS - не редактор. Это IDE, редакторов там несколько, они там как компоненты сделаны. Сама студия еще много чего в себя включает. Короче, повторю - вон из професии, стране нужны дворники.
Не строй из себя специалиста, коем ты абсолютно не являешься. Ну извини, не думал что ты такой тупой и все надо уточнять. Я имел ввиду общие одинаковые опции:
Молодец, нашел нужную ветку настроек. Уже прогресс. А теперь, поскольку время позднее и телепаты уже ушли спать, не будешь ли ты так добр пояснить, какие именно общие опции ты имеешь в виду? Поскольку я их в упор не вижу. Вижу РАЗНЫЕ опции для РАЗНЫХ языков.
В шарпе "Automatically format completed block on }", в JS "format completed block on }", почему нет "Automatically"?
Ты серьезно или ты просто решил от нечего делать поиздеваться? Как я понял из этого вот твоего поста - тебя не устраивает тот факт, что текст на чекбоксах для разных языков различается на одно слово "automatically"? Ну возможно потому что разные ветки настроек делались разными командами, одна решила сделать 3 настройки со словом "automatically", а другая решила сделать 3 настройки (для другого языка) без слова "automatically", но зато объединить эти настройки в группу с названием "Automatic formatting". Что тут неясного? Серьезно, блин, если твои претензии заключались вот в этом - то у меня просто нет слов (вернее, есть, но я промолчу). И еще раз то же самое повторю - настройки для разных языков, с чего ты решил, что они должны называться одинаково? Ясно дело, они могут называться по-разному, лишь бы ясность не терялась. В данном случае не теряется. В чем проблема?
Пф...Зачем тогда встревать в разговор, если не видел первых постов? Проблема в том, что нет автокомплита фигурных и круглых скобок в Js\html. Ну и соответственно переноса на новую строку курсора и табуляции.
Ах так вот оно в чем дело Если ведешь речь про посты недельной давности - уточняй, о чем идет речь, так будет быстрее. К тому же твои последние посты не ссылались на тот вопрос, как я вообще должен был догадаться, что ты, цитируя пост про автоформат в C/C++, на самом деле имеешь в виду свой вопрос, заданный тремя страницами ранее. Если это - твой вопрос: То самый простой ответ на него - используй сниппеты. В VS 2010 есть готовые сниппеты для функций, для циклов, для условий, плюс несложно свои заготовить. Выглядит это примерно так: набираешь, к примеру, function, нажимаешь Tab - сниппет разворачивается. Набираешь имя функции, нажимаешь Enter - курсор стоит внутри тела функции, все скобки расставлены как положено. В VS2008 сниппеты в HTML редакторе, насколько мне известно, не поддерживаются. Возможно, это лечится. Вообще, есть такое у меня мнение, что всякий инструмент хорош для своей области применения. Если тебе удобен тот же Aptane - зачем насиловать себя и использовать для тех же задач студию? Все-таки Aptane заточена под HTML/JS, естесственно, она удобнее.
С этого и надо было начинать. Сниппеты знаю, но думал что все проще окажется. Глупо делать нормально форматирование в одном языке и лишать в другом. Насчет аптаны я уже говорил, держать одновременно 2 редактора тоже не очень.
Да в общем-то сниппеты - вполне нормальное и простое решение. В чем-то даже лучше родной поддержки редактором, т.к. сниппеты можно редактировать, добавлять свои и т.п. Неприятно, да. Но не смертельно, за неделю вполне можно привыкнуть к не столь умному автокомплиту (сужу по своему опыту, пересел с vs2008+resharper на голую vs2010, первую неделю было неприятно работать, как будто клавиатура говном измазана, а сейчас привык и нормально) Можешь попробовать еще такое решение: поставить на студию какогй-нибудь аддон из серии VS.PHP или аналогичный. В VS.PHP есть интеллисенс для HTML и JS. Не знаю, насколько удобный, но скорее всего лучше студийного. Хм, неужели аптана настолько тяжела? Я вот не замечал, даже если вместе с ней открыты еще несколько штук студии. Хотя, конечно, дело твое.
при таких настройках непрерывно пишем {}(назад) \*быдло код*\;(Enter) И о чудо. Code: { \*быдло код*\; }
c++ события динамического компонента Пытаюсь обработчик события сделать, а все никак не получается. Форм у меня нету и быть не должно. Code: ClientSocket->OnConnect=ClientSocketConnect; Code: void __fastcall ClientSocketConnect(TObject* Sender, TCustomWinSocket* Socket) { //... } Выдает ошибку: Я уже не знаю что делать, пробовал привязать класс к нему, не помогает, все равно вылазит эта ошибка. Подскажите, что не так?
VS.PHP стоит уже давно (кстати может крек\серийник у кого есть?), но все равно не то. Насчет сниппетов...разве можно сделать, чтоб, например, при вызове функции, когда открываешь скобку он добавлял вторую и ставил курсор между ними? И тоже самое с двойными кавычками.
Всем привет Помогите разобраться с кодом, не могу произвести инжект в чужой процесс Code: #include <stdio.h> #include <stdlib.h> #include <tchar.h> #include <iostream> #include <string.h> #include < windows.h> #include < tlhelp32.h> #pragma comment(linker,"/BASE:0x13140000") // сдвигаем базу нашего процесса // ------- тут как обычно описываем прототипы функций -------- DWORD GetProcessID(char*); BOOL Inject(HANDLE,DWORD(WINAPI* func)(LPVOID)); DWORD WINAPI func(LPVOID); //-------- главная функция.... вопросов возникнуть не должно :-) --------- int WINAPI WinMain() { if(!Inject(OpenProcess(PROCESS_ALL_ACCESS,false,GetProcessID("explorer.exe")),&func)) return false; return true; } //-------- а вот это та самая функция, которая будет выполнять наши, ------- //-------- конечно же, доброжелательные действия в --------------------- //-------- чужом адресном пространстве :-)) --------------------------- DWORD WINAPI func(LPVOID) { //LoadLibrary("kernel32.dll"); // нам необходимо подгрузить жертве в процесс //LoadLibrary("user32.dll"); // требуемые нам библиотеки (их может и не быть изначально) SYSTEMTIME SysTime; GetSystemTime(&SysTime); WORD time=SysTime.wSecond+30; while(time!=SysTime.wSecond){GetSystemTime(&SysTime);} //MessageBox(0,"Hello from addres area of explorer","title",0); return true; } //-------- в поисках нашей жертвы --------- DWORD GetProcessID(char* lpNameProcess) // в параметрах передаем имя процесса жертвы { HANDLE snap; PROCESSENTRY32 pentry32; snap=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0); if(snap==INVALID_HANDLE_VALUE) return 0; pentry32.dwSize=sizeof(PROCESSENTRY32); if(!Process32First(snap,&pentry32)) {CloseHandle(snap);return 0;} do { if(!lstrcmp(lpNameProcess,&pentry32.szExeFile[0])) { CloseHandle(snap); return pentry32.th32ProcessID; // вот наша жертва для внедрения кода;-) } }while(Process32Next(snap,&pentry32)); CloseHandle(snap); return 0; } //-------- функция внедрения в пространство жертвы ------------------- BOOL Inject(HANDLE hProc,DWORD(WINAPI* func)(LPVOID)) { DWORD id; DWORD ByteOfWriten; HMODULE hModule = GetModuleHandle(NULL); DWORD size=((PIMAGE_OPTIONAL_HEADER)((LPVOID)((BYTE*)(hModule)+((PIMAGE_DOS_HEADER)(hModule))->e_lfanew+sizeof(DWORD)+ sizeof(IMAGE_FILE_HEADER))))->SizeOfImage; char* hNewModule = (char*)VirtualAllocEx(hProc,hModule,size,MEM_COMMIT|MEM_RESERVE,PAGE_EXECUTE_READWRITE); if(hNewModule==NULL) return false; WriteProcessMemory(hProc,hNewModule,hModule,size,&ByteOfWriten); if(ByteOfWriten!=size){return false;} HANDLE hThread=CreateRemoteThread(hProc,NULL,0,func,(LPVOID)hNewModule,0,&id); if(hThread==0) return false; return true; } При компиляции ошибка Code: 1>------ Build started: Project: inject, Configuration: Debug Win32 ------ 1>Build started 31.08.2010 23:42:13. 1>InitializeBuildStatus: 1> Touching "Debug\inject.unsuccessfulbuild". 1>ClCompile: 1> main.cpp 1>c:\users\senap\documents\visual studio 2010\projects\inject\inject\main.cpp(20): error C2731: 'WinMain' : function cannot be overloaded 1> c:\users\senap\documents\visual studio 2010\projects\inject\inject\main.cpp(19) : see declaration of 'WinMain' 1>c:\users\senap\documents\visual studio 2010\projects\inject\inject\main.cpp(52): error C2664: 'lstrcmpW' : cannot convert parameter 1 from 'char *' to 'LPCWSTR' 1> Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast 1> 1>Build FAILED. 1>
По поводу первой ошибки с WinMain - она не по прототипу записана. Смотрим прототип здесь: http://msdn.microsoft.com/en-us/library/ms633559%28VS.85%29.aspx И записываем ее так: Code: int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { ... } По поводу второй ошибки - добавь в самый верх кода строку Code: #undef UNICODE
А теперь создавай не консольное приложение Windows, а GUI. Project - Properties - Linker - System - SubSystem: Windows.