Модераторы: feodorv, GremlinProg, xvr, Fixin
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> подключение dll 
:(
    Опции темы
makaka
Дата 8.11.2009, 16:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 49
Регистрация: 25.10.2009

Репутация: нет
Всего: нет



У меня следующая ситуация. Надо написать dll  и подключить к приложению. Беру книжку Рихтера и делаю в точности как там. А именно:

Файл myDll.h
Код

#ifdef MYDLLAPI
#else
#define MYDLLAPI extern "C" __declspec(dllimport)
#endif

MYDLLAPI int showString(int input);



Файл myDllFile0.cpp
Код

#include <windows.h>
#include <stdio.h>
#include <conio.h>
#define MYDLLAPI extern "C" __declspec(dllexport)
#include "myDll.h"

int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void* lpReserved)
{
    return 1;
}

int showString(int input){
    if (input == 0) {
        printf("false");
        _getch();
        return 0;
    } else {
        printf("true");
        _getch();
        return 10;
    }
}



Файл app.cpp
Код

#pragma hdrstop
#include <windows.h>
#include <strsafe.h>
#include <stdlib.h>
#include "C:\Users\Victor\Documents\RAD Studio\Projects\myDll\mydll.h"
//---------------------------------------------------------------------------

#pragma argsused
int main(int argc, char* argv[])
{
    showString(0);
    return 0;
}





при компиляции dll все нормально. При компиляции приложения вылетает
[ILINK32 Error] Error: Unresolved external '_showString' referenced from C:\USERS\VICTOR\DOCUMENTS\RAD STUDIO\PROJECTS\RELEASE\APP0.OBJ

Та же ошибка вылетает при использовнии не RAD, а Visual Stidio.
Что я делаю неправильно???

Это сообщение отредактировал(а) makaka - 8.11.2009, 16:49
PM MAIL   Вверх
A5uKa
Дата 8.11.2009, 16:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


TЋ♥s F1rȜ iƧ BurȠiƞg
***


Профиль
Группа: Awaiting Authorisation
Сообщений: 1928
Регистрация: 30.8.2008

Репутация: нет
Всего: 16



попробуйте
#include "mydll.h" 

ещё важно где у вас лежит сама dll
тут \RELEASE ?
PM   Вверх
makaka
Дата 8.11.2009, 17:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 49
Регистрация: 25.10.2009

Репутация: нет
Всего: нет



A5uKa
Если меняю путь к mydll.h, то вообще найти не может файл



Сейчас папки утроены так:

1) Папка с двумя файлами dll
C:\Users\Victor\Documents\RAD Studio\Projects\myDll\

2) Папка с консольным приложением (1 файл cpp)
C:\Users\Victor\Documents\RAD Studio\Projects\consoleApplication\


Разве такое расположение - криминал?

Добавлено через 3 минуты и 45 секунд
я вот обнаружил что когда я нажимаю кнопку построить проект, то исполняемого файла exe и файла библиотеки dll физически в папках не появляются. Это нормально вообще? 
Перепробовал все варианты кнопок - запустить проект, построить проект и т.д. 
PM MAIL   Вверх
makaka
Дата 8.11.2009, 17:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 49
Регистрация: 25.10.2009

Репутация: нет
Всего: нет



библиотека собирается. Перемещаю ее и файл mydll.h в подкаталог проекта release
Теперь вылетает такое
[ILINK32 Error] Error: Unresolved external '_showString' referenced from C:\USERS\VICTOR\DOCUMENTS\RAD STUDIO\PROJECTS\CONSOLEAPPLICATION\RELEASE\APP0.OBJ
PM MAIL   Вверх
kosmonaFFFt
Дата 8.11.2009, 18:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 538
Регистрация: 14.4.2008
Где: Иннополис

Репутация: нет
Всего: 5



А .lib файла вместе с библиотекой не скомпилилось?


--------------------
user posted image
PM MAIL ICQ   Вверх
makaka
Дата 8.11.2009, 20:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 49
Регистрация: 25.10.2009

Репутация: нет
Всего: нет



kosmonaFFFt, Скомпилилось. Я пыталя добавлять эту билиотеку к консолному приложению - эффекта ноль

Может у кого-нить есть пошаговая инструкция что со всем этим делать? Я уже весь инет перерыл. Куча статей - и везде, такое ощущение, пишут для себя......
PM MAIL   Вверх
makaka
Дата 8.11.2009, 21:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 49
Регистрация: 25.10.2009

Репутация: нет
Всего: нет



Вроде разобрался
Нашел в инете работающий пример для Visual Studio (в приложении к посту)
Там динамическая подгрузка библиотеки

Может кто даст похожий пример для статической подгрузки?????

Присоединённый файл ( Кол-во скачиваний: 4 )
Присоединённый файл  example_DLL________.rar 9,81 Kb
PM MAIL   Вверх
Alca
Дата 9.11.2009, 14:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3993
Регистрация: 14.6.2006

Репутация: 5
Всего: 50



Цитата

Может кто даст похожий пример для статической подгрузки?????

http://www.firststeps.ru/cbuilder/r.php?91
http://www.vsokovikov.narod.ru/New_MSDN_API/DLL/ogl_dll.htm
http://msdn.microsoft.com/en-us/library/ms682589(VS.85).aspx

Цитата

Unresolved external ...

ты lib-файл добавил в проект?


Это сообщение отредактировал(а) Alca - 9.11.2009, 14:36


--------------------
PM WWW ICQ Skype Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Системное программирование и WinAPI"
Fixin
GremlinProg
xvr
feodorv
  • Большое количество информации и примеров с использованием функций WinAPI можно найти в MSDN
  • Описание сообщений, уведомлений и примеров с использованием компонент WinAPI (BUTTON, EDIT, STATIC, и т.п.), можно найти в MSDN Control Library
  • Непосредственно, перед созданием новой темы, проверьте заголовок и удостоверьтесь, что он отражает суть обсуждения.
  • После заполнения поля "Название темы", обратите внимание на наличие и содержание панели "А здесь смотрели?", возможно Ваш вопрос уже был решен.
  • Приводите часть кода, в которой предположительно находится проблема или ошибка.
  • Если указываете код, пользуйтесь тегами [code][/code], или их кнопочными аналогами.
  • Если вопрос решен, воспользуйтесь соответствующей ссылкой, расположенной напротив названия темы.
  • Один топик - один вопрос!
  • Перед тем как создать тему - прочтите это .

На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы .


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема »


 




[ Время генерации скрипта: 0.1307 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.