[ C / C++ ] — начинающим: задаем вопросы (архивная - 2015)

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by _Great_, 26 May 2007.

Thread Status:
Not open for further replies.
  1. Deniys

    Deniys New Member

    Joined:
    5 Aug 2012
    Messages:
    2
    Likes Received:
    0
    Reputations:
    0
    Помогите с кодом на C++

    Всем привет.
    Сделал кнопки,помогите с написаем кода на кнопки.
    Необходимо чтобы при нажатии на кнопку добавлялся Reg файл в реестр

    1 Кнопка добавление в реестр:

    Скачать архив с этими файлами можно ниже
    http://zalil.ru/33652571

    2 Кнопка удаление с реестра:

    Скачать архив с этими файлами можно ниже
    http://zalil.ru/33652579
     
    #7401 Deniys, 7 Aug 2012
    Last edited: 7 Aug 2012
  2. Deniys

    Deniys New Member

    Joined:
    5 Aug 2012
    Messages:
    2
    Likes Received:
    0
    Reputations:
    0
    Че никто не может помоч?
     
  3. D4rkC10ud

    D4rkC10ud New Member

    Joined:
    30 Jul 2012
    Messages:
    27
    Likes Received:
    1
    Reputations:
    0
    2 Deniys
    Писать за тебя прогу не буду, но помочь-помогу.

    Во-первых забудь о Reg файлах - это костыли - используй
    RegCreateKeyEx и др. апи функции с мсдн.

    Если действительно твоя задача запустить Reg-файл, то
    Вот пример:

    #include <shellapi.h>
    #pragma comment(lib,"shell32.lib")

    ShellExecute(hWnd,TEXT("open"), TEXT("твойрегфайл.рег"), TEXT(""),NULL,SW_SHOWNORMAL);
     
  4. I-Never-Die

    I-Never-Die New Member

    Joined:
    3 Aug 2012
    Messages:
    22
    Likes Received:
    2
    Reputations:
    0
    Как получить указатель char* на string? Есть string.c_str(), но она возвращает const char*. Гугл курил, но, видимо, неправильно.
     
  5. Ins3t

    Ins3t Харьковчанин

    Joined:
    18 Jul 2009
    Messages:
    939
    Likes Received:
    429
    Reputations:
    139
    никак. а вообще смотря что тебе нужно. в некоторых случаях и &str[0] прокатит.

    опиши задачу конкретнее.
     
    #7405 Ins3t, 7 Aug 2012
    Last edited: 7 Aug 2012
  6. Chrome~

    Chrome~ Elder - Старейшина

    Joined:
    13 Dec 2008
    Messages:
    936
    Likes Received:
    162
    Reputations:
    27
    const_cast должен помочь, ищи в Гугле.
     
  7. Ins3t

    Ins3t Харьковчанин

    Joined:
    18 Jul 2009
    Messages:
    939
    Likes Received:
    429
    Reputations:
    139
    конст каст это вообще сурово.
    заюзай const_cast - изнасилуй компилятор (с)
     
  8. Chrome~

    Chrome~ Elder - Старейшина

    Joined:
    13 Dec 2008
    Messages:
    936
    Likes Received:
    162
    Reputations:
    27
    Если бы это было так, то const_cast вообще бы не существовало. А так он существует и предназначен для той задачи, которую описали выше.
     
  9. Ins3t

    Ins3t Харьковчанин

    Joined:
    18 Jul 2009
    Messages:
    939
    Likes Received:
    429
    Reputations:
    139
    Выше задачу не описали. На сколько я помню, стринг вообще не гарантирует последовательного представления данных. Необходимость отмеы константносьт зачастую является следствием кривой архитектуры.
     
    1 person likes this.
  10. GRRRL Power

    GRRRL Power Elder - Старейшина

    Joined:
    13 Jul 2010
    Messages:
    823
    Likes Received:
    185
    Reputations:
    84
    Ins3t верно говорит, const_cast и сишные аналогичные касты используются только если архитектура кривая. Для задачи выше подойдет &str[0], как опять-таки сказали, только буфер у строки должен быть достаточный, если туда планируется что-то напрямую записывать. Строки, как и векторы, последовательно данные располагают, иначе не было бы валидным &str[x].
     
  11. tim-oleksii

    tim-oleksii Member

    Joined:
    14 Mar 2011
    Messages:
    199
    Likes Received:
    10
    Reputations:
    0
    В большинстве случаев да, однако, у Мейерса описано исключение.
     
  12. Radist

    Radist New Member

    Joined:
    5 Jul 2012
    Messages:
    10
    Likes Received:
    0
    Reputations:
    0
    Я хочу изучить С++ с чего посоветуете начать? Книги какие-нибудь, или ещё что нибудь?
     
  13. Ins3t

    Ins3t Харьковчанин

    Joined:
    18 Jul 2009
    Messages:
    939
    Likes Received:
    429
    Reputations:
    139
    с поиска по форуму. харви дейтел - как программировать на С++. так же рекомендуют лимпмана.
     
  14. Vinsik

    Vinsik Elder - Старейшина

    Joined:
    4 Oct 2008
    Messages:
    189
    Likes Received:
    4
    Reputations:
    -5
    на последних шагах компиляции проекта

    [win32] Linking...

    создание кода
    создание кода завершено

    [win32] Clearing DOS Header...

    ERROR: Failed to clear DOS Header in PE file "".

    как исправить?
     
  15. DeepBlue7

    DeepBlue7 Elder - Старейшина

    Joined:
    2 Jan 2009
    Messages:
    359
    Likes Received:
    50
    Reputations:
    12
    c++. Мучу коудкейв. Есть ассемблерный код к которому надо прыгнуть с конкретного адреса в приложении (хукаю свою дллку). Поясните, как сделать следующее:

    1. Выделить место для ассемлерного кода в памяти
    2. Вбить код в этот участок памяти (из инлайн ассембли)
    3. Получить либо адресс на него, либо получить его как массив байт, который записать в выделенный участок памяти а затем сделать к нему jmp

    Надеюсь, понятно ) Заранее благодарю.
     
    #7415 DeepBlue7, 16 Aug 2012
    Last edited: 16 Aug 2012
  16. bad_boy

    bad_boy Elder - Старейшина

    Joined:
    30 Dec 2004
    Messages:
    187
    Likes Received:
    33
    Reputations:
    3
    VirtualAlloc
    VirtualProtect c PAGE_EXECUTE_READWRITE
    А потом, например, вызов адреса как процедуры, что то вроде
    (*VirtualAlloc_result)()
    или вставкой
    __asm{
    jmp VirtualAlloc_result
    }
     
  17. DeepBlue7

    DeepBlue7 Elder - Старейшина

    Joined:
    2 Jan 2009
    Messages:
    359
    Likes Received:
    50
    Reputations:
    12
    bad_boy, спасибо за ответ.

    А как полученый адрес перегнать в DWORD ?
     
    #7417 DeepBlue7, 17 Aug 2012
    Last edited: 17 Aug 2012
  18. Kaimi

    Kaimi Well-Known Member

    Joined:
    23 Aug 2007
    Messages:
    1,732
    Likes Received:
    811
    Reputations:
    231
    http://en.wikipedia.org/wiki/Type_conversion
     
    _________________________
  19. DeepBlue7

    DeepBlue7 Elder - Старейшина

    Joined:
    2 Jan 2009
    Messages:
    359
    Likes Received:
    50
    Reputations:
    12
    Перегоняя тупо так:

    Code:
    DWORD p = (DWORD)pMem;
    
    получаю неправильный адресс. Выводя значение pMem - адрес совсем другой, не тот что получается при конвертации.
     
  20. D4rkC10ud

    D4rkC10ud New Member

    Joined:
    30 Jul 2012
    Messages:
    27
    Likes Received:
    1
    Reputations:
    0
    Возможно ты неправильно выводишь результат. DWORD это не int, а unsigned int
    или как вариант ты компилишь для х86-64 архитектуры
     
    #7420 D4rkC10ud, 17 Aug 2012
    Last edited: 17 Aug 2012
Thread Status:
Not open for further replies.