Помогите з Dll
От: LordWin  
Дата: 18.04.05 22:40
Оценка:
Как имея Dll которая была написана для експорта в Visual Basic (стянул у автора а обратного адреса для мыла у него нету) перенести в Visual C++ 7 .NET ????
В Visual C++ 7 .NET говорит что .lib файл неподходит или же битый ....
Если етот вопрос выглядит тупо ... звеняюсь заранее, просто в форуме подобного невидал....
Пасиба заранее !
Re: Помогите з Dll
От: Odi$$ey Россия http://malgarr.blogspot.com/
Дата: 19.04.05 03:06
Оценка:
Здравствуйте, LordWin, Вы писали:

LW>Как имея Dll которая была написана для експорта в Visual Basic (стянул у автора а обратного адреса для мыла у него нету) перенести в Visual C++ 7 .NET ????


аналогично
... << RSDN@Home 1.1.4 rev. 408 >>
Re[2]: Помогите з Dll
От: LordWin  
Дата: 24.04.05 12:28
Оценка:
Чтото пробовал невыходит.... другая дллка компилится нормально ... а вот когда вставляю в проект пишет :

d:\DotNET\Project\test1\my_nast.h(35) : warning C4518: '__declspec(dllimport ) ' : storage-class or type specifier(s) unexpected here; ignored
d:\DotNET\Project\test1\my_nast.h(35) : warning C4230: anachronism used : modifiers/qualifiers interspersed; qualifier ignored
d:\DotNET\Project\test1\my_nast.h(46) : warning C4518: '__declspec(dllimport ) ' : storage-class or type specifier(s) unexpected here; ignored
d:\DotNET\Project\test1\my_nast.h(46) : warning C4230: anachronism used : modifiers/qualifiers interspersed; qualifier ignored
d:\DotNET\Project\test1\my_nast.h(55) : warning C4518: '__declspec(dllimport ) ' : storage-class or type specifier(s) unexpected here; ignored
d:\DotNET\Project\test1\my_nast.h(55) : warning C4230: anachronism used : modifiers/qualifiers interspersed; qualifier ignored
d:\DotNET\Project\test1\my_nast.h(63) : warning C4518: '__declspec(dllimport ) ' : storage-class or type specifier(s) unexpected here; ignored
d:\DotNET\Project\test1\my_nast.h(63) : warning C4230: anachronism used : modifiers/qualifiers interspersed; qualifier ignored

Form1.obj : error LNK2001: unresolved external symbol "void __stdcall Closes(void)" (?Closes@@$$J10YGXXZ)
D:\DotNET\Project\test1\Release\test1.exe : fatal error LNK1120: 1 unresolved externals

закинул исходники ... посмотрите что нетак ..... http://www.rsdn.ru:80/File/40591/dll.exe
mdmxsvr.dll — ето та з которой надо забрать функцыи ....
Заранее пасиба !
Подключение к Visual C++ Dll от ...
От: Odi$$ey Россия http://malgarr.blogspot.com/
Дата: 24.04.05 18:03
Оценка: 12 (2)
#Имя: FAQ.tools.msvc.otherdll1
Здравствуйте, LordWin, Вы писали:

LW>Как имея Dll которая была написана для експорта в Visual Basic (стянул у автора а обратного адреса для мыла у него нету) перенести в Visual C++ 7 .NET ????

LW>Visual C++ 7 .NET говорит что .lib файл неподходит или же битый ....

1. берем проект, в котором надо использовать твою mdmxsvr.dll, подключаем h и lib, какие есть:

#include "mdmxsvr.h"
#pragma comment(lib, "mdmxsvr")

ага, lib-а не нравится:

mdmxsvr.lib : warning LNK4003: invalid library format; library ignored

2. Создаем свою (IMPDEF.exe из комплекта Borland C++ Builder):

impdef.exe mdmxsvr.def mdmxsvr.dll

получился mdmxsvr.def:

LIBRARY     MDMXSVR.DLL

EXPORTS
    MDMX_Close                     @4   ; MDMX_Close
    MDMX_GetDMXTransmissions       @3   ; MDMX_GetDMXTransmissions
    MDMX_OpenSerialDevice          @1   ; MDMX_OpenSerialDevice
    MDMX_SetChannel                @2   ; MDMX_SetChannel
    ___CPPdebugHook                @5   ; ___CPPdebugHook

далее:

lib.exe /def:mdmxsvr.def

lib.exe — из комплекта Visual C++. Перед запуском этой команды нужно установить переменные окружения для данной консоли вызовом bat-файла C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\bin\vcvars32.bat, иначе lib.exe не найдет нужных ему dll.

Подключаем к проекту получившеюся mdmxsvr.lib

3. Lib-а съелась нормально, однако, при попытке добавить вызов функций из dll, ошибка

MainDlg.obj : error LNK2019: unresolved external symbol _MDMX_Close@0 ...
MainDlg.obj : error LNK2019: unresolved external symbol _MDMX_GetDMXTransmissions@0 ...
MainDlg.obj : error LNK2019: unresolved external symbol _MDMX_SetChannel@8 ...
MainDlg.obj : error LNK2019: unresolved external symbol _MDMX_OpenSerialDevice@8 ...

4. Правим def-файл, чтоб привести имена функций к тем, которые ищет VC:

LIBRARY     MDMXSVR.DLL

EXPORTS
    MDMX_OpenSerialDevice@8     =  MDMX_OpenSerialDevice     @1   ; MDMX_OpenSerialDevice
    MDMX_SetChannel@8           =  MDMX_SetChannel           @2   ; MDMX_SetChannel
    MDMX_GetDMXTransmissions@0  =  MDMX_GetDMXTransmissions  @3   ; MDMX_GetDMXTransmissions
    MDMX_Close@0                =  MDMX_Close                @4   ; MDMX_Close

пересоздаем lib-у

lib.exe /def:mdmxsvr.def

заглядываем внутрь lib-ы, убеждаемся, что там присутствуют искомые _MDMX_Close@0, _MDMX_SetChannel@8 и т.д.

Компилируем... Все OK.
... << RSDN@Home 1.1.4 beta 6 rev. 431>>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.