Ошибка и что с ней делать?

Тема в разделе "WASM.BEGINNERS", создана пользователем Superplaneta, 18 авг 2006.

  1. Superplaneta

    Superplaneta New Member

    Публикаций:
    0
    Регистрация:
    15 авг 2006
    Сообщения:
    44
    что это значит и как лечить?

    Компилятор: Default compiler
    Building Makefile: "D:\data\dev\TEST\Makefile.win"
    Выполнение make clean
    rm -f main.o 11.exe

    g++.exe -c main.cpp -o main.o -I"D:/software/Dev-Cpp/lib/gcc/mingw32/3.4.2/include" -I"D:/software/Dev-Cpp/include/c++/3.4.2/backward" -I"D:/software/Dev-Cpp/include/c++/3.4.2/mingw32" -I"D:/software/Dev-Cpp/include/c++/3.4.2" -I"D:/software/Dev-Cpp/include"

    g++.exe main.o -o "11.exe" -L"D:/software/Dev-Cpp/lib"

    main.o(.text+0x15a):main.cpp: undefined reference to `_imp__SHSetValueA@24'
    collect2: ld returned 1 exit status

    make.exe: *** [11.exe] Error 1

    Выполнение завершено
     
  2. Superplaneta

    Superplaneta New Member

    Публикаций:
    0
    Регистрация:
    15 авг 2006
    Сообщения:
    44
    Это моя вина я просто забыл компоновшику добавить!
    СОРРИ :)))
     
  3. Superplaneta

    Superplaneta New Member

    Публикаций:
    0
    Регистрация:
    15 авг 2006
    Сообщения:
    44
    АААА!!!!!!!!!!!!!
    ВСЕРАВНО НЕ РАБОТАЕТ!!!!!!!!!!!!!!!!!!!!!

    #include <cstdlib>
    #include <iostream>
    #include <shlwapi.h>
    #pragma comment(lib,"shlwapi.lib")

    using namespace std;

    int main(int argc, char *argv[])
    {


    SHSetValue(HKEY_LOCAL_MACHINE, "Software\\Mircosoft\\Windows\\CurrentVersion\\Run",
    "Soft", REG_SZ, "123.exe",
    strlen("123.exe"));

    return EXIT_SUCCESS;
    }

    ГДЕ ОШИБКА??? Компилируется но не работает!!!!!!!
     
  4. censored

    censored New Member

    Публикаций:
    0
    Регистрация:
    5 июл 2005
    Сообщения:
    1.615
    Адрес:
    деревня "Анонимные Прокси"
    может просто прав нет? :)
    можно еще так:
    Код (Text):
    1. #include <windows.h>
    2. #include <shlwapi.h>
    3. #include <assert.h>
    4. #include <string.h>
    5. #pragma comment(lib, "shlwapi.lib")
    6.  
    7. int main(int argc, char **argv) {
    8.   DWORD ret;
    9.   const char * fname = "%SystemRoot%\\system32\\calc.exe";
    10.   ret = SHSetValue(HKEY_LOCAL_MACHINE,
    11.                           "Software\\Microsoft\\Windows\\CurrentVersion\\Run",
    12.                           "Calc", REG_SZ,
    13.                           fname, strlen(fname));
    14.   assert(ret==ERROR_SUCCESS);
    15.   return 0;
    16. }
     
  5. Superplaneta

    Superplaneta New Member

    Публикаций:
    0
    Регистрация:
    15 авг 2006
    Сообщения:
    44
    УУУУУУУУУУУУУУУУУУ!!!!!!!!!!!!!
    Наказание!!!!!!!!! Ни с чем так не мучался как с реестром
    за все годы програмирования!!!!!!!!!! Никогда не писал в
    реестр, а вместо этого или в инсталлер или в *.reg файл прилагал!!!
    А как вздумал писать так как заколдовано - все примеры или не компилирубтся
    или не работают или дрянь пишут!!!!!!!!! ЗНАЮ ЧТО МОЯ ОШИБКА НО ГДЕ И ДЕЛО
    ЭТО ПЛЕВОЕ, НО ГДЕ??????????

    #include <windows.h>
    #include <shlwapi.h>
    #include <assert.h>
    #include <string.h>
    #pragma comment(lib, "shlwapi.lib")

    int main(int argc, char **argv) {
    DWORD ret;
    const char * fname = "1";
    ret = SHSetValue(HKEY_LOCAL_MACHINE,
    "Software\\Microsoft\\Windows\\CurrentVersion\\Run",
    "Calc", REG_DWORD,
    fname, strlen(fname));
    assert(ret==ERROR_SUCCESS);
    return 0;
    }

    Теперь вместо в REG_DWORD значение 1, пишет огромное число. Нужно
    установить размер DWORD в 4 байта. Так. И нихера!!!!!!!!
     
  6. Superplaneta

    Superplaneta New Member

    Публикаций:
    0
    Регистрация:
    15 авг 2006
    Сообщения:
    44
    А НЕШЕЛ!!!!!! ВСЁ, НЕ НАДО СПАСИБО!!!!!!!!!!!!!!
    вот что надо было мне писать:
    #include <windows.h>
    #include <shlwapi.h>
    #include <assert.h>
    #include <string.h>
    #pragma comment(lib, "shlwapi.lib")

    int main(int argc, char **argv) {
    DWORD nol = 4;
    DWORD ret;
    const char * fname = "1";
    ret = SHSetValue(HKEY_LOCAL_MACHINE,
    "Software\\Microsoft\\Windows\\CurrentVersion\\Run",
    "Calc", REG_DWORD,
    &nol, 4);
    assert(ret==ERROR_SUCCESS);
    return 0;
    }
     
  7. censored

    censored New Member

    Публикаций:
    0
    Регистрация:
    5 июл 2005
    Сообщения:
    1.615
    Адрес:
    деревня "Анонимные Прокси"
    можно еще на курсы англиского пойти ж)
     
  8. Superplaneta

    Superplaneta New Member

    Публикаций:
    0
    Регистрация:
    15 авг 2006
    Сообщения:
    44
    Пойду! Надо :)