Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > C++ > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Здесь нужно купить рекламу за 25 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 08.10.2009, 15:48   #1
>=VeNoM=<
 
Регистрация: 08.10.2009
Сообщений: 7
Плохо Вопросец по DLL Static Link

Всем привет!

Недавно столкнулся с проблемой, вообще-то не новой, но решить никак не могу. У меня есть ДЛЛ-ка, хочется ее прикрутить статически к программе. И не работает. Вот коды

Файл библиотеки(Project1.cpp):
Код:
#include <windows.h>
#pragma hdrstop
#pragma argsused
extern "C" __declspec(dllimport) _stdcall int Addition(int a, int b)
{
        return a+b;
}
 
extern "C" __declspec(dllimport) _stdcall int Substraction (int a, int b)
{
    return a-b;
}
BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fwdreason, LPVOID lpvReserved)
{
        return 1;
}
Заголовочный файл(Project1.h):
Код:
#pragma comment(lib, "Project1.lib")
int Addition(int a, int b);
int Substraction(int a, int b);
Код самой программы:
Код:
//---------------------------------------------------------------------------
 
#pragma hdrstop
 
#include <tchar.h>
#include "Project1.h"
#include <iostream.h>
//---------------------------------------------------------------------------
 
#pragma argsused
int _tmain(int argc, _TCHAR* argv[])
{
        int a=Addition(1,2);
        cout << a;
        return 0;
}
//---------------------------------------------------------------------------
Либу прикрутил, компиляция проходит, а на этапе линковки пишет:
[ILINK32 Error] Error: Unresolved external 'Addition(int, int)' referenced from C:\12\DEBUG\FILE2.OBJ

Помогите, пожалуйста. 5 дней пытаюсь прилинковать, гоогле перерыл, ничего не нашел...(((
Жизнь надо прожить так, чтобы другим неповадно было!
>=VeNoM=< вне форума   Ответить с цитированием
Старый 08.10.2009, 17:14   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,840
По умолчанию

Судя по всему ДЛЛ линкуется без этих функций.
Видимо ты неправльно Header описал.
I'm learning to live...
Stilet вне форума   Ответить с цитированием
Старый 08.10.2009, 17:37   #3
ds.Dante
Старожил
 
Аватар для ds.Dante
 
Регистрация: 06.08.2009
Сообщений: 2,997
По умолчанию

programmersforum.ru/showthread.php?t=38078
ds.Dante вне форума   Ответить с цитированием
Старый 08.10.2009, 18:02   #4
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

Цитата:
Сообщение от >=VeNoM=<
Код:
extern "C" __declspec(dllimport) _stdcall int Addition(int a, int b)
{
        return a+b;
}
 
extern "C" __declspec(dllimport) _stdcall int Substraction (int a, int b)
{
    return a-b;
}
Код:
int Addition(int a, int b);
int Substraction(int a, int b);
Судя по всему неправильное описание в хидере. Вероятно должно быть вот так?
Код:
int _stdcall Addition(int a, int b);
int _stdcall Substraction(int a, int b);
netrino вне форума   Ответить с цитированием
Старый 08.10.2009, 18:19   #5
pproger
C++ hater
СуперМодератор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,328
По умолчанию

и еще, зачем в хидере твоей библиотеки подключать ее же??
Код:
#pragma comment(lib, "Project1.lib")
int Addition(int a, int b);
int Substraction(int a, int b);
ужос, чо твориццо
pproger вне форума   Ответить с цитированием
Старый 08.10.2009, 18:25   #6
>=VeNoM=<
 
Регистрация: 08.10.2009
Сообщений: 7
По умолчанию

Всем спасибо за помощь, ошибка была в коде библиотеки: атрибут __declspec(dllimport) -> __declspec(dllexport). Ну и естессно, в заголовочном файле немного коррекции внести надо было.
Жизнь надо прожить так, чтобы другим неповадно было!
>=VeNoM=< вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Static члены assasin Общие вопросы C/C++ 2 21.08.2009 10:54
По-поводу Static volnixx PHP 3 11.03.2009 13:04


09:40.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.