Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

problem with DLL

7.9K
13 мая 2005 года
iri_iri
48 / / 15.04.2005
Пытаюсь подключить к проекту на билдере чужую DLL.

получаю error loading type library.
что бы это могло быть?:-?

заранее спасибо
Страницы:
488
14 мая 2005 года
Mоngооsе
465 / / 01.04.2005
Этот dll, какой-то очень старый.

А если, в .h-файл вместо
RETCODE FAR PASCAL EXPORT DSE_Alloc(HDSECLNT *phClient);

написать
WINAPI DSE_Alloc(HDSECLNT *phClient);

линкер тоже не находит ф-ию?
7.9K
14 мая 2005 года
iri_iri
48 / / 15.04.2005
Цитата:
Originally posted by Mоngооsе
Этот dll, какой-то очень старый.

А если, в .h-файл вместо
RETCODE FAR PASCAL EXPORT DSE_Alloc(HDSECLNT *phClient);

написать
WINAPI DSE_Alloc(HDSECLNT *phClient);

линкер тоже не находит ф-ию?



АНАЛОГИЧНО!
[Linker Error] Unresolved external 'DSE_Alloc' referenced from E:\IRA\UNIT1.OBJ
блин, да что ж делать, то?

488
14 мая 2005 года
Mоngооsе
465 / / 01.04.2005
Цитата:
Originally posted by iri_iri
АНАЛОГИЧНО!
[Linker Error] Unresolved external 'DSE_Alloc' referenced from E:\IRA\UNIT1.OBJ
блин, да что ж делать, то?


WINAPI __declspec(dllexport) DSE_Alloc(DECLNT *phClient);

тоже не катит? :)

Что это за библиотека?

7.9K
14 мая 2005 года
iri_iri
48 / / 15.04.2005
Цитата:
Originally posted by Mоngооsе
WINAPI __declspec(dllexport) DSE_Alloc(DECLNT *phClient);

тоже не катит? :)

Что это за библиотека?



для доступа к данным одной системки.
:}
анлогично.
[Linker Error] Unresolved external 'DSE_Alloc' referenced from E:\IRA\UNIT1.OBJ

доктор, есть надежда?

285
14 мая 2005 года
Romik
479 / / 24.11.2002
Цитата:
Originally posted by iri_iri
для доступа к данным одной системки.
:}
анлогично.
[Linker Error] Unresolved external 'DSE_Alloc' referenced from E:\IRA\UNIT1.OBJ

доктор, есть надежда?



Есть. Попробуй создать новый проект. Заново подключи к нему библиотеку. Вобщем сделай всё заново. Кстати, а полный билд пробывала делать?.

488
14 мая 2005 года
Mоngооsе
465 / / 01.04.2005
Цитата:
Originally posted by iri_iri
для доступа к данным одной системки.
:}
анлогично.
[Linker Error] Unresolved external 'DSE_Alloc' referenced from E:\IRA\UNIT1.OBJ

доктор, есть надежда?

Угу. Нужно упорно трудиться в течении несколько лет, и такие проблемы будут решаться за пару минут.

PEDisassembler весит 1.5Мб. Можно скачать и посмотреть в нем на этот dll. Она показывает и возвращаемый результат. Напр. на рис. ниже видно, что метод CreateObject возвращает CObject*

А системка это что? Linux, FreeBSD... :)

7.9K
14 мая 2005 года
iri_iri
48 / / 15.04.2005
Цитата:
Originally posted by Romik
Есть. Попробуй создать новый проект. Заново подключи к нему библиотеку. Вобщем сделай всё заново. Кстати, а полный билд пробывала делать?.



ок. значит дела такие:
сделала новый прект.
инклуднула .h - класс: компилится, ранится - все супер.
НО...
добавила кнопку и добавила
void __fastcall TForm1::Button1Click(TObject *Sender)
{
HDSECLNT hClnt = NULL;
//HDSECLNT описан в библиотеке
/* Allocate client handle */
if (DSE_Alloc(&hClnt) == DSE_RETCODE_OK)
//тоже описано все в библиотеке
{}
}

и проранила:
[Linker Error] Unresolved external 'DSE_Alloc' referenced from E:\IRA\UNIT1.OBJ

7.9K
14 мая 2005 года
iri_iri
48 / / 15.04.2005
Цитата:
Originally posted by Mоngооsе
Угу. Нужно упорно трудиться в течении несколько лет, и такие проблемы будут решаться за пару минут.

PEDisassembler весит 1.5Мб. Можно скачать и посмотреть в нем на этот dll. Она показывает и возвращаемый результат. Напр. на рис. ниже видно, что метод CreateObject возвращает CObject*


ок. щас уже буду качать.;)

Цитата:
Originally posted by Mоngооsе

А системка это что? Linux, FreeBSD... :)


я же не сказала ОС, я сказала "системка".

285
14 мая 2005 года
Romik
479 / / 24.11.2002
Цитата:
Originally posted by iri_iri
ок. щас уже буду качать.;)

я же не сказала ОС, я сказала "системка".


Если ничего не получится, вышли/выложи эту DLL с lib и header файлами в архиве, угу.

488
14 мая 2005 года
Mоngооsе
465 / / 01.04.2005
Цитата:
Originally posted by iri_iri
ок. щас уже буду качать.;)
я же не сказала ОС, я сказала "системка".

Ясно, что-то архи секретное.

Но ты подключила lib файл к проекту?

Типа меню Project->Add to Project...

7.9K
14 мая 2005 года
iri_iri
48 / / 15.04.2005
самое интересное, что я вижу все функи:

488
14 мая 2005 года
Mоngооsе
465 / / 01.04.2005
Цитата:
Originally posted by iri_iri
самое интересное, что я вижу все функи:

Что-то нужно сделать, чтоб и линкер тоже видел эти функи. lib-файл подключен к проекту?

7.9K
14 мая 2005 года
iri_iri
48 / / 15.04.2005
Цитата:
Originally posted by Mоngооsе
Что-то нужно сделать, чтоб и линкер тоже видел эти функи. lib-файл подключен к проекту?



да подключен.

488
14 мая 2005 года
Mоngооsе
465 / / 01.04.2005
Цитата:
Originally posted by iri_iri
да подключен.

Тогда нужно бы посмотреть какой вид имеет DSE_Alloc(). Вместо save As, можно бы использовать View As Text. Имеет значение calling convention и return type.

7.9K
14 мая 2005 года
iri_iri
48 / / 15.04.2005
Цитата:
Originally posted by Mоngооsе
Тогда нужно бы посмотреть какой вид имеет DSE_Alloc(). Вместо save As, можно бы использовать View As Text. Имеет значение calling convention и return type.



ну вот:


488
14 мая 2005 года
Mоngооsе
465 / / 01.04.2005
Цитата:
Originally posted by iri_iri
ну вот:

Ничего не видно. :D

Drawing2.gif нужно было бы подключить в качестве файла.

Возможно Romik прав, DLL имеет VisualC COFF формат и нужно его перевести в OMF формат

488
14 мая 2005 года
Mоngооsе
465 / / 01.04.2005
Заметил.

Дает что-то замена в h-файле WINAPI __declspec(dllexport) DSE_Alloc(DWORD phClient)

А в обработчике OnButton
 
Код:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
  HDSECLNT hClnt = NULL;
  //HDSECLNT описан в библиотеке
  /* Allocate client handle */
  if (DSE_Alloc((DWORD)&hClnt) == DSE_RETCODE_OK)
  //тоже описано все в библиотеке
  {}
}
???
7.9K
14 мая 2005 года
iri_iri
48 / / 15.04.2005
Цитата:
Originally posted by Mоngооsе
Ничего не видно. :D

Drawing2.gif нужно было бы подключить в качестве файла.


серьезно не видно??
0x1000 - 0x20 DSE_Alloc(dword param_1)

Calling Convention = stdcall
DSE_Alloc
Labels
Calls (2)
External Gotos (1)
asm
Parsed Asm
C++
0x1030 - 0x3b DSE_SetParams(dword param_1, dword param_2, dword param_3, dword param_4, dword param_5, dword param_6, dword param_7, dword param_8)
0x1070 - 0x14 DSE_SetCallback(dword param_1, dword param_2)
0x1090 - 0xc DSE_Connect(dword param_1)
0x10a0 - 0xc DSE_Disconnect(dword param_1)
0x10b0 - 0x23 DSE_Free(dword param_1)
0x10e0 - 0x30 DSE_SendAck(dword param_1, dword param_2, dword param_3, dword param_4, dword param_5, dword param_6)
0x1110 - 0x16 DSE_QueryRunSingle(dword param_1, dword param_2, dword param_3)
0x1130 - 0x39 DSE_QueryRun(dword param_1, dword param_2, dword param_3, dword param_4)
0x1170 - 0x13 DSE_QueryNext(dword param_1, dword param_2)
0x1190 - 0x13 DSE_QueryCurrent(dword param_1, dword param_2)
0x11b0 - 0x11 DSE_QueryCancel(dword param_1, dword param_2)
0x11d0 - 0x11 DSE_QueryIsPending(dword param_1, dword param_2)
0x11f0 - 0xc7 DSE_GetDataByName(dword param_1, dword param_2, dword param_3, dword param_4, dword param_5)
0x1360 - 0x13e DSE_GetDataFirst(dword param_1, dword param_2, dword param_3, dword param_4, dword param_5, dword param_6)
0x14a0 - 0x13e DSE_GetDataNext(dword param_1, dword param_2, dword param_3, dword param_4, dword param_5, dword param_6)
0x15e0 - 0x38 DSE_GetMsgTag(dword param_1, dword param_2, dword param_3)
0x1620 - 0x152 DSE_GetDataMaxBufLen(dword param_1, dword param_2, dword param_3)
0x1790 - 0x20 DSE_WriteDealInfo(dword param_1, dword param_2, dword param_3, dword param_4, dword param_5)
0x559f - 0x9d PEMain(dword param_1, dword param_2, dword param_3)

Цитата:
Originally posted by Mоngооsе

Возможно Romik прав, DLL имеет VisualC COFF формат и нужно его перевести в OMF формат


так я вроде это делала...
coff2omf...

7.9K
14 мая 2005 года
iri_iri
48 / / 15.04.2005
Цитата:
Originally posted by Mоngооsе
Заметил.

Дает что-то замена в h-файле WINAPI __declspec(dllexport) DSE_Alloc(DWORD phClient)

А в обработчике OnButton
 
Код:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
  HDSECLNT hClnt = NULL;
  //HDSECLNT описан в библиотеке
  /* Allocate client handle */
  if (DSE_Alloc((DWORD)&hClnt) == DSE_RETCODE_OK)
  //тоже описано все в библиотеке
  {}
}
???


а вот этого я вообще не поняла...

488
14 мая 2005 года
Mоngооsе
465 / / 01.04.2005
Цитата:
Originally posted by iri_iri
серьезно не видно??

Серьезно не было видно. У меня в browsere отключен вывод картинок... :)

Если не получится, тогда нужно будет явно подключить DLL. С этим больше морок, но он гибче. Но это уже лучше будет сделать завтра.

488
14 мая 2005 года
Mоngооsе
465 / / 01.04.2005
Цитата:
Originally posted by iri_iri
а вот этого я вообще не поняла...


А что здесь не понятно? Я поменял только тип аргумента.

7.9K
14 мая 2005 года
iri_iri
48 / / 15.04.2005
Цитата:
Originally posted by Mоngооsе
Серьезно не было видно. У меня в browsere отключен вывод картинок... :)

Вчера смотрел нашего преза по телеку и думал, никто не может ему подсказать, чтоб говорил громче, я понимаю только каждое 2-е 3-е слово. Потом сделал телевизор громче и все OK :).

Если не получится, тогда нужно будет явно подключить DLL. С этим больше морок, но он гибче. Но это уже лучше будет сделать завтра.



ок.тогда явно до завтра. буду ждать. :D

7.9K
14 мая 2005 года
iri_iri
48 / / 15.04.2005

не заметила...:D на счет изменения типа аргумента
488
14 мая 2005 года
Mоngооsе
465 / / 01.04.2005
Цитата:
Originally posted by iri_iri
не заметила...:D

Ok. Но я теперь заметил, что DES_Alloc не возвращает результата.
Так что, лучше бы написать в h
void DES_Alloc(DWORD phClient);

и

 
Код:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
  HDSECLNT hClnt = NULL;
  DSE_Alloc((DWORD)&hClnt);
  if(hClnt!=NULL)
  {
  }
}
7.9K
14 мая 2005 года
iri_iri
48 / / 15.04.2005
Цитата:
Originally posted by Mоngооsе
Ok. Но я теперь заметил, что DES_Alloc не возвращает результата.
Так что, лучше бы написать в h
void DES_Alloc(DWORD phClient);

и
 
Код:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
  HDSECLNT hClnt = NULL;
  DSE_Alloc((DWORD)&hClnt);
  if(hClnt!=NULL)
  {
  }
}


но в .h написано
typedef signed short RETCODE;
...
RETCODE FAR PASCAL EXPORT DSE_Alloc(HDSECLNT *phClient);

285
14 мая 2005 года
Romik
479 / / 24.11.2002
Цитата:
Originally posted by iri_iri
а вот этого я вообще не поняла...


Он тебе предлагает заменить длинющую строку, более простой. Хотя думаю это непринципиально, так как одно заменятется на другое - равносильное.

Знаешь что, попробуй всё же утилитку implib Создай свой lib файл прямо от dll. Если получится хуеватенький файлец, типа 2 Kb да ещё и весь FF, то сделай impdef filename.def filename.lib Он создаст тебе def файл от lib В нём будут имена всех экспортируемых функций. Попробуй подключить библиотеку динамически используя указаные имена. Скорее всего име будет иметь вид "_FuncName" или "@FuncName" Вобщем поэксперементируй. Если получится подключить динамически, то надежда ещё теплится. Удачи!

285
14 мая 2005 года
Romik
479 / / 24.11.2002
Цитата:
Originally posted by iri_iri
но в .h написано
typedef signed short RETCODE;
...
RETCODE FAR PASCAL EXPORT DSE_Alloc(HDSECLNT *phClient);



Кстати, а где определена констаната RETCODE(выдели в редакторе кода, нажми правую клавишу мыши, выбери Find Diclaration)

488
14 мая 2005 года
Mоngооsе
465 / / 01.04.2005
Цитата:
Originally posted by iri_iri
но в .h написано
typedef signed short RETCODE;
...
RETCODE FAR PASCAL EXPORT DSE_Alloc(HDSECLNT *phClient);

Но PE disassembler показывает, что ф-ия не возвращает результата.

7.9K
14 мая 2005 года
iri_iri
48 / / 15.04.2005
Цитата:
Originally posted by Romik
Кстати, а где определена констаната RETCODE(выдели в редакторе кода, нажми правую клавишу мыши, выбери Find Diclaration)


я так понимаю что это определение типа...
typedef signed short RETCODE;

285
14 мая 2005 года
Romik
479 / / 24.11.2002
Цитата:
Originally posted by iri_iri
я так понимаю что это определение типа...
typedef signed short RETCODE;



Ну вот Mоngооsе толкает весьма разумную мыслю. Если дизассемблер показывает что, ф-ия ничего не возвращает, то это может быть причиной, хотя в нашем мире всё возмножно :) Что выдаёт impdef? какие там имена ф-ий? Какого типа возвращаемые значения. То что в DLL ничего не возвращается - замечательно, но ведь линкуется через lib. Хрен его знает чё там запихнуто. Идеальном выриантом является implib, но он работает только с родным форматом coff.

488
14 мая 2005 года
Mоngооsе
465 / / 01.04.2005
Цитата:
Originally posted by Romik
Ну вот Mоngооsе толкает весьма разумную мыслю. Если дизассемблер показывает что, ф-ия ничего не возвращает,

Здесь может быть и другое. По всей вероятности pedisassembler не умеет работать с OMG форматом.

7.9K
14 мая 2005 года
iri_iri
48 / / 15.04.2005
Цитата:
Originally posted by Romik
Ну вот Mоngооsе толкает весьма разумную мыслю. Если дизассемблер показывает что, ф-ия ничего не возвращает, то это может быть причиной, хотя в нашем мире всё возмножно :) Что выдаёт impdef? какие там имена ф-ий? Какого типа возвращаемые значения. То что в DLL ничего не возвращается - замечательно, но ведь линкуется через lib. Хрен его знает чё там запихнуто. Идеальном выриантом является implib, но он работает только с родным форматом coff.




Borland Impdef Version 3.0.22 Copyright (c) 1991, 2000 Inprise Corporation
Error E:\IRA\EURO\Reuters_Documentation\sputnik\sputnik\www\TLXExportAPI.lib: un
known file type

7.9K
14 мая 2005 года
iri_iri
48 / / 15.04.2005
///... может (скорее всего так и есть..) я туплю...:}
488
14 мая 2005 года
Mоngооsе
465 / / 01.04.2005
хотя бы .h и исходный .lib файл, можно бы выложить. По этим файлам исходный код неможно восстановить.
7.9K
14 мая 2005 года
iri_iri
48 / / 15.04.2005
куда?
285
14 мая 2005 года
Romik
479 / / 24.11.2002
Цитата:
Originally posted by iri_iri
///... может (скорее всего так и есть..) я туплю...:}



Бросай, но только у меня нет под рукой компилятора :( Я сей час в офисе, а компилятор дома. Но хотя бы *.h можно поглядеть. Млять, и наверное это завтра (т.е. часа через 2-3) а то спать хочу, того и гляди - развалюсь. До связи.

488
14 мая 2005 года
Mоngооsе
465 / / 01.04.2005
Цитата:
Originally posted by iri_iri
куда?

заархивировать эти 2 файла и сюда или на [email]vl2@freemail.hu[/email].
Но lib файл нужен исходный, чтоб по нему можно было построить def файл.

7.9K
14 мая 2005 года
iri_iri
48 / / 15.04.2005
ушло
7.9K
14 мая 2005 года
iri_iri
48 / / 15.04.2005
Цитата:
Originally posted by Mоngооsе
Хм... что-то долго доходит. email адрес нужно было бы скопировать, а не вручную набирать.


шутишь, да?...
скопировала я
кинула еще раз

7.9K
14 мая 2005 года
iri_iri
48 / / 15.04.2005
ну как?
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог