Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Win API


Новое направление Портала RusFAQ.ru:
MosHoster.ru - Профессиональный хостинг

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / WinAPI

Выпуск № 525
от 11.04.2008, 08:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 351, Экспертов: 30
В номере:Вопросов: 1, Ответов: 1

Нам важно Ваше мнение об этой рассылке.
Оценить этот выпуск рассылки >>


Вопрос № 130764: Уважаемы эксперты пожалуйста укажите как коректно подключить динамически dll библиотеку. Вот что у меня получилось, не могу разобраться почему не находит указатель на функцию.(Хотя нахождение самой dll вродебы проходит успешно HINSTANCE hMyDll != NUL...

Вопрос № 130.764
Уважаемы эксперты пожалуйста укажите как коректно подключить динамически dll библиотеку. Вот что у меня получилось, не могу разобраться почему не находит указатель на функцию.(Хотя нахождение самой dll вродебы проходит успешно HINSTANCE hMyDll != NULL)

____Main.cpp_____
#include <windows.h>
#include "stdafx.h"
typedef void (*MasB)(unsigned int *, int , unsigned char *);

int _tmain(int argc, _TCHAR* argv[])
{
unsigned int mas[]={3,8,9,6,5};
unsigned char ch[sizeof(mas)/4*5/8+1]={0};
HINSTANCE hMyDll = ::LoadLibrary(_TEXT("D:\\\\Adres\\\\MyDLL.dll"));
MasB MasBit;
MasBit = (MasB)::GetProcAddress(hMyDll, "MasBit");
(*MasBit)(mas,sizeof(mas),ch);
// И далее дейстdbz c переменными ch

____MyDll.cpp_____

#include <windows.h>
#include "stdafx.h"
__declspec (dllexport) void MasBit(unsigned int *, int , unsigned char *);

BOOL APIENTRY DllMain( HMODULE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
return TRUE;
}

void MasBit(unsigned int *mas, int t, unsigned char *ch){
int n=0;
for(int i=0;i<(t/4);i++){
int g=i*3;
while(g>=8){
g-=8;
if(g==8)n++;
}
int k=mas[i];
if(i!=0)
mas[i]<<=(8-g);
ch[n]^=mas[i];
if(((8-g)>=5) && (i!=0)){
n++;
k>>=g;
ch[n]^=k;
}
}
}
Функция вроде должна работает нормально (я её кидал в главный файл для проверки и вызывал как обычную функцию и все работало)
Заранее благодарен за помощ.
Отправлен: 06.04.2008, 07:55
Вопрос задал: Александров Александр Андреевич (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: PavelGM
Здравствуйте, Александров Александр Андреевич!

А DEF файл своей DLL не приведете? Именно там задается как будет выглядеть ваша функция для внешних вызовоов. Иначе компилятор сгенерит имя в соответствии со своими соображениями. Т.е. вам нужно написать в DEF что-то типа такого

LIBRARY MyDLL
EXPORTS MasBit
Ответ отправил: PavelGM (статус: Студент)
Ответ отправлен: 06.04.2008, 20:55
Оценка за ответ: 5
Комментарий оценки:
Большое спасибо за быстрый ответ. Это какраз то что было нужно, теперь все работает.


Вы имеете возможность оценить этот выпуск рассылки.
Нам очень важно Ваше мнение!
Оценить этот выпуск рассылки >>

Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2008, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Техподдержка портала, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале

∙ Версия системы: 4.72.8 от 05.04.2008

Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное