Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

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

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 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,097
По умолчанию

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

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,333
По умолчанию

и еще, зачем в хидере твоей библиотеки подключать ее же??
Код:
#pragma comment(lib, "Project1.lib")
int Addition(int a, int b);
int Substraction(int a, int b);
ужос, чо твориццо
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума Ответить с цитированием
Старый 08.10.2009, 18:25   #6
>=VeNoM=<
 
Регистрация: 08.10.2009
Сообщений: 7
По умолчанию

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


Купить рекламу на форуме - 42 тыс руб за месяц



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