Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
Архив форумов ЦИТФорума
Море(!) вопросов - Море(!) ответов
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 
Как правильно задавать вопросы

Вызов функции из dll

 
Перейти:  
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Программирование
Предыдущая тема :: Следующая тема  
Автор Сообщение
nut888
Гость





СообщениеДобавлено: Пн Сен 09 2002 14:24    Заголовок сообщения: Вызов функции из dll Ответить с цитатой

W2000/VC6
Вопрос такой
Я вызываю из внешней dll функцию
типа void без параметов.
Эта функция осуществляет вывод в stderr.
Как мне этот вывод получить

Пример

typedef void (*LIBSYSSPROC) (void);

void main (void)

{

HMODULE module = LoadLibrary("libsyss.dll");
if (module == NULL)
{
printf("ERROR - error loading library\n");
return;
}

LIBSYSSPROC my_proc = (LIBSYSSPROC) GetProcAddress(module,"ENV_print_version");

if (my_proc == NULL)
{
printf("ERROR - error getting proc address\n");
FreeLibrary(module);
return;
}

my_proc();

FreeLibrary(module);

}
Вернуться к началу
andrew_s
Гость





СообщениеДобавлено: Вт Сен 10 2002 17:44    Заголовок сообщения: Re: Вызов функции из dll Ответить с цитатой

HANDLE std_e;
std_e = CreateFile("stderr.txt",GENERIC_READ|GENERIC_WRITE,0,NULL,CREATE_ALWAY.. || !SetStdHandle(STD_ERROR_HANDLE,std_e))
{
... exit ...
}
...
LoadLibrary(...);
GetProcAddress(...);
my_proc();
Free.. этого делай с STDERR.TXT что хочешь Smile
Главная фишка - вызов SetStdHandle ДО загрузки dll и вызов CloseHandle ПОСЛЕ выгрузки.
Если тебе нужен старый хэндл stderr, используй GetStdHandle.
Вернуться к началу
andrew_s
Гость





СообщениеДобавлено: Вт Сен 10 2002 17:51    Заголовок сообщения: Re: Вызов функции из dll Ответить с цитатой

Блин кусок кода не влез Sad(

Отправляю заново (надеюся сейчас ничего не пропадет...)

HANDLE std_e;
std_e = CreateFile("stderr.txt", GENERIC_READ|GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, 0, NULL);

if(( std_e == INVALID_HANDLE_VALUE) || !SetStdHandle( STD_ERROR_HANDLE, std_e) )
{
... exit ...
}
...

LoadLibrary(...);

GetProcAddress(...);

my_proc();.. этого делай с STDERR.TXT что хочешь Smile
Главная фишка - вызов SetStdHandle ДО загрузки dll и вызов CloseHandle ПОСЛЕ выгрузки.
Если тебе нужен старый хэндл stderr, используй GetStdHandle.
Вернуться к началу
andrew_s
Гость





СообщениеДобавлено: Вт Сен 10 2002 17:54    Заголовок сообщения: Re: Вызов функции из dll Ответить с цитатой

@$%^%#^ !!!!

Что за хрень!!

LoadLibrary(...);

GetProcAddress(...);

my_proc();

.. как это должно выглядеть)

После этого делай с STDERR.TXT что хочешь...
Вернуться к началу
Показать сообщения:   
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Программирование Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2002 phpBB Group
Русская поддержка phpBB

 

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 6608306, ICQ 232284597
Пресс-релизы — pr@citforum.ru
Послать комментарий
Информация для авторов
This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2006 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...