![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 20.04.2008
Сообщений: 18
|
![]()
Здравствуйте,у меня сложилась следующая ситуация:
есть уже написанная библиотека dll(соответственно основные 3 файла имеются .dll,.h,.lib)Мне нужно написать проект, подключив данную библиотеку и унаследовав ее методы. Ответ на вопрос ,как именно подключить библиотеку я нашла в одной из тем на форуме: Цитировать "Речь идёт о том, где твои функции или классы объявлены. В СРР или LIB. Поэтому тебе нужны 3 файла (если статическая LIB, то 2). Например у тебя есть комплект: MyLIb.h MyLIb.lib MyLIb.dll который находится на в папке MyProject\mylib (проект находится MyProject\myexe - это для примера, чтоб показать использование пути) Чтоб подключить в 6ой версии, идём в настройки проекта (Alt+F7) -> C/C++ Выбираем категорию Preprocessor и вводим дополнительнй путь (3 окошко ввода сверху) ../MyLib это позволит делать #include без указания пути - в нашем случае #include <MyLib.h> вместо #include "..\\MyLib\\MyLib.h" Переходим на страничку настроек Linker. Выбираем категорию Input (Ввод) если в списке используемых библиотек уже что-то стоит, то добавляем через пробел :!: нашу библиотеку: kernel32.lib user32.lib gdi32.lib winspool.lib MyLib.lib можно сразу указать путь к ней - "../MyLib/MyLib.lib" , но ( если планируется использовать несколько LIB) лучше это сделать в соответствующем месте - доп. пути для библиотек. Вписываем туда ../MyLib Нажимаем Ок. Теперь достаточно инклудировать MyLib.h (например в stdafx.h) и доступ к функциям и классам этой библиотеки готов. Примечания: 1. Если используется несколько библиотек и они лежат в разных местах, то необходимо перечислить все пути к h- и lib-файлам, через запятую. И все lib-файлы через пробел. 2. Если есть различные конфигурации проекта (напр. Debug и Release), то необходимо выполнить подключение библиотеки в каждой конфигурации. 3. Если вариант с DLL, после сборки она должна находится там, где находится ЕХЕ." теперь при компиляции у меня возникают ошибки типа: Код: d:\1\debug\baseclasses\videosource. h(7) : fatal error C1083: Cannot open include file: 'streams.h': No such file or directory Подскажите, пожалуйста, что делать и как с этим всем разобраться? ![]() Последний раз редактировалось Tan4ik; 20.04.2008 в 14:30. |
![]() |
![]() |
![]() |
#2 |
Новичок
Джуниор
Регистрация: 18.01.2008
Сообщений: 1,720
|
![]()
Найти, где находится этот 'streams.h' и попробовать, для начала, указать полный путь к нему в двойных кавычках (в #include). Больше без кода сказать сложно.
|
![]() |
![]() |
![]() |
#3 | |
Пользователь
Регистрация: 20.04.2008
Сообщений: 18
|
![]() Цитата:
код: // VideoSource.h - Interface for CVideoSource class // CVideoSource class builds DirecX graph to grab video frames #pragma once #include <windows.h> #include <streams.h> #include <stdio.h> #include <atlbase.h> #include <qedit.h> #include "BaseImgProc.h" #define _WIN32_DCOM //================== CSampleGrabberCB ================================= // Implementation of CSampleGrabberCB object // Note: this object is a SEMI-COM object, and can only be created statically. class CSampleGrabberCB : public ISampleGrabberCB..... ну и так далее Да, действительно, не зная содержимого всех подключаемых ресурсов..очень сложно дать конкретный ответ на поставленный вопрос. Имеются несколько библиотек:BaseClasses.dll,Control.d ll,CustomCtrl.dll,TenxHID.dll.Основ ной является BaseClasses.dll, в которой используются остальные. Мне нужно как-то подключить данную библиотеку и использовать методы каждой из имеющихся...(Ну попыталась немножко обьяснить конкретнее, что мне нужно, не знаю удалось ли...) |
|
![]() |
![]() |
![]() |
#4 |
Новичок
Джуниор
Регистрация: 18.01.2008
Сообщений: 1,720
|
![]()
Тот файл, который Вы ищете, у меня например находится в
"C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\Samples\Multimedia\DirectShow\Ba seClasses\streams.h". Не уверен, идёт ли он с более ранними SDK, но в составе VS .NET 2003 его нет. Поищите его у себя в Platform SDK, если имеете, иначе возможно придётся его ставить (или DirectX, или DirectShow SDK, скорее всего, он с ними должен быть). |
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 20.04.2008
Сообщений: 18
|
![]()
Спасибо,а вот меня интересует еще такой вопрос как динамическое подключение библиотек .DLL...?
|
![]() |
![]() |
![]() |
#6 | |
Новичок
Джуниор
Регистрация: 18.01.2008
Сообщений: 1,720
|
![]() Цитата:
Код:
|
|
![]() |
![]() |
![]() |
#7 |
Пользователь
Регистрация: 20.04.2008
Сообщений: 18
|
![]()
B_N
Профессионал, огромное Вам спасибо. ![]() |
![]() |
![]() |
![]() |
#8 |
Форумчанин
Регистрация: 28.01.2010
Сообщений: 224
|
![]()
не знаю но я работаю в Builder 2006 в следующей интерпритации
HINSTANCE hDLL; typedef char (_import * FType (char*)); FType * MyFunc; hDLL = LoadLibrary ("Project1.dll"); if (hDLL !=0) MyFunc = (FType *) GetProcAddress(hDLL,"Code_Dec"); else ShowMessage ("Не удача в загрузки"); if (MyFunc) Label1->Caption = MyFunc ("Привет"); else ShowMessage ("Функция не доступна"); Но у меня вызывает сообщение Функция не доступна. Я тоже вот бьюсь над этой проблемой
всему свое время как зиме и весне
и каждому солнцу свой неба кусок |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Вопрос с подключением мыши в графическом режиме | Unconnected | Паскаль, Turbo Pascal, PascalABC.NET | 1 | 01.07.2008 10:26 |
Библиотеки в С++ | MIKI | Свободное общение | 5 | 10.06.2008 20:15 |
Проблемы с подключением | Катрина | БД в Delphi | 3 | 19.05.2008 00:57 |
Библиотеки Dll | ivanesky | Общие вопросы Delphi | 9 | 10.03.2008 10:42 |
Мат библиотеки для С# | TheGuardian123 | Общие вопросы .NET | 0 | 31.01.2008 18:10 |