Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: strerror - errno  (Прочитано 4840 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Malaja
Команда клуба

de
Offline Offline
Пол: Женский

« : 02-07-2004 15:14 » 

Gospoda,
pomogite pogalujsta razobratjsja.

Situazija sledujushaja :

Код:
#include <errno.h>
extern int errno;

    HINSTANCE hModule=NULL;
    char buf[1000];

   hModule=LoadLibrary("test.dll");
   if (hModule == NULL)
   {
        sprintf(buf, "%s: %s \n", "errno = ", strerror(errno));
   }


W sluchae oshibki w errno dolgno bit kakoe-to znachenie != 0 (w teorii).
na praktike ge errno=0! Я шокирован!
pochemu?
(Woistinu, kogda ti dumaesh, chto ti chto-to znaesh, na dele wijasnjaetsja, chto ti uge nichego ne znaesh    Вот такой я вот )
« Последнее редактирование: 29-11-2007 20:54 от Алексей1153++ » Записан

холоднокровней, Маня, Ви не на работе
---------------------------------------
четкое определение сущности бытия:
- А мы в прошлом или в будущем?- спросила Алиса.
- Мы в жопе, - ответил кролик.
- А "жопа" - это настоящее? - спросила Алиса.
- А "жопа" - это у нас символ вечности.
darkelf
Молодой специалист

ua
Offline Offline

« Ответ #1 : 02-07-2004 16:52 » 

Для того, чтобы узнать код ошибки LoadLibrary() необходимо вызывать GetLastError(). Сообщение можно вывести через FormatMessage(). Чтото типа:
Код:
  unsigned char buff[512];
  FormatMessage(
    FORMAT_MESSAGE_FROM_SYSTEM,
    NULL,
    GetLastError(),
    MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // Default language
    (LPTSTR) &buff,
    sizeof(buff),
    NULL
  );
  printf("%s", buff);
« Последнее редактирование: 29-11-2007 20:56 от Алексей1153++ » Записан
Malaja
Команда клуба

de
Offline Offline
Пол: Женский

« Ответ #2 : 02-07-2004 18:18 » 

darkelf,

spasibo za sowet, prosto ja hotela obobshit obrabotku oshibok, inache poluchaetsha, chto dlja kagdogo zaezda - swoj stadion, a hotelos imet obshij  Жаль
U menja w proekte krome wsewozmognih operazij s Dll (w wine i linuxe) eshe swistopljaska s socketami, wot ja i reshila zamenit getlasterror na standartnij strerror, dabi wse bilo odinakowo.  Молчу  pohoge, eto ne udastsja  Жаль  ili est nadegda? Улыбаюсь
Записан

холоднокровней, Маня, Ви не на работе
---------------------------------------
четкое определение сущности бытия:
- А мы в прошлом или в будущем?- спросила Алиса.
- Мы в жопе, - ответил кролик.
- А "жопа" - это настоящее? - спросила Алиса.
- А "жопа" - это у нас символ вечности.
darkelf
Молодой специалист

ua
Offline Offline

« Ответ #3 : 03-07-2004 13:58 » 

К сожалению, я не знаю нормального решения. Для сокетов, чтобы для меня не было различий, я пользуюсь собственной бибилиотечкой, которая под Windows обеспечивает часть функциональности Linux-версии сокетов: устанавливает errno, вместо вызова WSAGetLastError(), добавляет некоторые коды errno и функции sendmsg()/recvmsg(). Если интересно, могу выслать. Как вариант, под Windows написать собственную функцию strerror().
Записан
npak
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #4 : 03-07-2004 22:25 » 

Malaja, errno устанавливается функциями из поддержки С Run Time (read, write, etc).  Функции Win32 пользуются GetLastError.

Для переносимости надо писать свои функции доступа к коду ошибки.
Записан

UniTesK -- индустриальная технология надежного тестирования.

http://www.unitesk.com/ru/
Malaja
Команда клуба

de
Offline Offline
Пол: Женский

« Ответ #5 : 05-07-2004 06:52 » 

darkelf,

spasibo za pomosh. Esli mogesh - wishli, pogalujsta, budu ochen blagodarna.

npak,
spasibo za informaziju! ja dumala, chto win32 w korne wse rawno ispolzuet standartnie kodi oshibok, t.e. errno mogno ispolzowat narawne s GetLast Error i t.d. Eshe raz spasibo! Отлично
Записан

холоднокровней, Маня, Ви не на работе
---------------------------------------
четкое определение сущности бытия:
- А мы в прошлом или в будущем?- спросила Алиса.
- Мы в жопе, - ответил кролик.
- А "жопа" - это настоящее? - спросила Алиса.
- А "жопа" - это у нас символ вечности.
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines