Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вызов external функции прописаной в .DLL файле 
:(
    Опции темы
vdm
Дата 1.2.2008, 12:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Есть пунция в header video.h там же прописана и структура. DLL файл в корневой папке.
extern "C" KGSDK_API long WINAPI SetColor(HVIDGRAB hVidGrab, COLOR_INFO* pColorInfo);

Прописываю header (#include "video.h") в main.cpp но в выборочных функциях при нажатии ctrl+spcace её нету. Что-то делаю неправельно? 

PM MAIL   Вверх
dizzy1984
Дата 1.2.2008, 13:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(vdm @  1.2.2008,  14:23 Найти цитируемый пост)
 но в выборочных функциях

Каких-каких функциях?
А либ файлик прилинковать не забыл?
PM MAIL   Вверх
vdm
Дата 1.2.2008, 16:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Я его только в main.cpp описал: hLib = LoadLibrary((LPSTR) "VideoGrabber.dll");
но сдесь другая проблема, при таком вызове говорит:
error C2664: 'LoadLibraryW' : cannot convert parameter 1 from 'LPSTR' to 'LPCWSTR'

все *.cpp у меня написаны на UNICODE а dll'ke по ходу нужен multilanguage этого я поменять не могу потому как тогда ошибок ещё больше. Что делать?
PM MAIL   Вверх
xvr
Дата 1.2.2008, 18:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

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



Цитата(vdm @ 1.2.2008,  16:15)
Я его только в main.cpp описал: hLib = LoadLibrary((LPSTR) "VideoGrabber.dll");
но сдесь другая проблема, при таком вызове говорит:
error C2664: 'LoadLibraryW' : cannot convert parameter 1 from 'LPSTR' to 'LPCWSTR'

Что делать?

Написать hLib = LoadLibrary(_T("VideoGrabber.dll"));
PM MAIL   Вверх
vdm
Дата 2.2.2008, 05:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



hLib = LoadLibrary((LPSTR) L"VideoGrabber.dll");
Не помогает smile
TestDlg.cpp(82): error C2664: 'LoadLibraryW' : cannot convert parameter 1 from 'LPSTR' to 'LPCWSTR'


Это сообщение отредактировал(а) vdm - 2.2.2008, 07:22
PM MAIL   Вверх
xvr
Дата 2.2.2008, 10:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

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



Цитата(vdm @ 2.2.2008,  05:23)
hLib = LoadLibrary((LPSTR) L"VideoGrabber.dll");
Не помогает smile
TestDlg.cpp(82): error C2664: 'LoadLibraryW' : cannot convert parameter 1 from 'LPSTR' to 'LPCWSTR'

И не поможет - найдите 2 отличия:
hLib = LoadLibrary((LPSTR) L"VideoGrabber.dll"); - как написано у тебя
hLib = LoadLibrary(_T("VideoGrabber.dll")); - как было надо написать

PM MAIL   Вверх
vdm
Дата 2.2.2008, 15:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



xvr, spasibo smile а можешь пояснить, почему LPSTR совсем нужно было убрать? Получается(LPSTR), _T(), L, TEX() одного и того же рода деятельности, только разных типов?

Это сообщение отредактировал(а) vdm - 2.2.2008, 15:57
PM MAIL   Вверх
xvr
Дата 3.2.2008, 00:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

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



Цитата(vdm @ 2.2.2008,  15:53)
xvr, spasibo smile а можешь пояснить, почему LPSTR совсем нужно было убрать? Получается(LPSTR), _T(), L, TEX() одного и того же рода деятельности, только разных типов?

(LPSTR) - это явное приведение типа, причем для ASCII проекта (у тебя Unicode).
Вообще всю кухню с _T _TEXT и группой *T* типов (например LPTSTR) придумали именно для унификации работы с Unicode/ASCII. В ASCII режиме они обозначают обычный char*, а в Unicode - wide char wchar_t*. Так что если используется это все, то явные приведения типов не нужны (и даже вредны)


PM MAIL   Вверх
vdm
Дата 3.2.2008, 01:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Цитата(xvr @ 3.2.2008,  00:02)
Цитата(vdm @ 2.2.2008,  15:53)
xvr, spasibo smile а можешь пояснить, почему LPSTR совсем нужно было убрать? Получается(LPSTR), _T(), L, TEX() одного и того же рода деятельности, только разных типов?

(LPSTR) - это явное приведение типа, причем для ASCII проекта (у тебя Unicode).
Вообще всю кухню с _T _TEXT и группой *T* типов (например LPTSTR) придумали именно для унификации работы с Unicode/ASCII. В ASCII режиме они обозначают обычный char*, а в Unicode - wide char wchar_t*. Так что если используется это все, то явные приведения типов не нужны (и даже вредны)

Большое спасибо xvr:)
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема »


 




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


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

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