Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Visual C++/MFC/WTL > Проблема с созданием длл либы.


Автор: pablo 10.5.2005, 09:40

Взял я тут примерчик из <www.firststeps.ru> по созданию длл библиотеки.
Вот пример кодов:

dllexcel.h

Код

#include "windows.h"

extern "C"
{
    void WINAPI MyTest();
}



dllexcel.cpp

Код

/*Simple dll for application */

#include "dllexcel.h" 

 void WINAPI MyTest()
 {
        MessageBox(0,"Hellos","Dll",MB_OK);
 }
; dllexcel.def //(Ошибка но никак непойму какая !)
EXPORTS MyTest    @1


dllexcel.def

Код

Declare Sub MyTest Lib "dllexcel.dll" ()
Sub Test()
    MyTest
End Sub


проблема вот в чём:

Не хочет компилить вот что пишет:
c:\temp\dllexcel\dllexcel.cpp(9) : error C2143: syntax error : missing ';' before '.'
c:\temp\dllexcel\dllexcel.cpp(9) : error C2501: 'dllexcel' : missing storage-class or type specifiers
c:\temp\dllexcel\dllexcel.cpp(9) : error C2143: syntax error : missing ';' before '.'
c:\temp\dllexcel\dllexcel.cpp(10) : error C2018: unknown character '0x40'
Error executing cl.exe.

DllExcel.dll - 4 error(s), 0 warning(s)

Может кто знает лекарство от этой проблемы ???

Заранее благодарю. smile

Автор: srd 10.5.2005, 10:16
Эти строчки должны размещаться не в CPP-файле, а в DEF-файле.
Код

; dllexcel.def //(Ошибка но никак непойму какая !)
EXPORTS MyTest    @1


А это вообще код на Visual Basic и никакого отношения к DEF-файлам не имеет.
Код

Declare Sub MyTest Lib "dllexcel.dll" ()
Sub Test()
    MyTest
End Sub



Автор: pablo 10.5.2005, 11:55
Ну если сделат вот как:
dllexcel.cpp
Код

/*Simple dll for application */

#include "dllexcel.h" 

 void WINAPI MyTest()
 {
        MessageBox(0,"Hellos","Dll",MB_OK);
 }


dllexcel.def:
Цитата

; dllexcel.def
EXPORTS MyTest  @1


То вылетает вот что:

Цитата

--------------------Configuration: DllExcel - Win32 Debug--------------------
Linking...
  Creating library Debug/DllExcel.lib and object Debug/DllExcel.exp
DllExcel.obj : error LNK2001: unresolved external symbol __imp__MessageBoxA@16
Debug/DllExcel.dll : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.

DllExcel.dll - 2 error(s), 0 warning(s)

Автор: srd 10.5.2005, 12:04
#include <windows.h> напиши.
Добавлено @ 12:11
А, виноват, windows.h у тебя уже включён. Тогда рассказывай, как проект создавал.

Автор: pablo 10.5.2005, 16:09
Создавал вот как:

Запускал Visual Studio 6.0, потом New->Dynamic link library->empty project;

Потом делаю insert file to project(excell.cpp, excell.h, excell.def);

Пишу в них код, запускаю и наслаждаюсь морем ошибок smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)