Народ, помогите пожалуйста. Возникла проблемка. Имееются 2 файла (скачал из инета): cpp и h, а также DLL'ка откомпилированная по этим 2-м файлам в Builder'е (ф-ции по работе с Excel). Использую DLL и эти исходники в своем проекте на VC++6, все работает нормально. Но я хочу переделать немного исходники (организовать все в виде класса). Но появилась проблемка: компилирую эти 2 файла в DLL в VC++6 (без каких-либо изменений), компилируется без проблем, но когда я пытаюсь подменить DLL оригинальную откомпилированой, то у меня начинает ругаться (при запуске моего приложения). Попадает в errorMessage с кодом: "Не найдена указанная процедура". Код:
// Header ExcelDLL.h -------------------------------------------------------
#define _DLL_EXCEL_EXPORT_
#ifndef _DLL_EXCEL_EXPORT_
#define _EXCEL_DLL_ __declspec(dllimport)
#else
#define _EXCEL_DLL_ __declspec(dllexport)
#endif
//---------------------------------------
//Установка цвета ячеек
bool _EXCEL_DLL_ SetColor (char *Cells,XlColorIndex Color);
typedef bool (*pSetColor)( char *Cells,XlColorIndex Color);
extern pSetColor XlSetColor;
//Установка границы ячеек
bool _EXCEL_DLL_ SetCellsBorder(. . .);
typedef bool (*pSetCellsBorder)(. . .);
extern pSetCellsBorder XlSetCellsBorder;
//Запуск Excel
bool _EXCEL_DLL_ RunExcel();
typedef bool (*pRunExcel)();
extern pRunExcel XlRunExcel;
//Создать новую книгу, выбрать первый лист
bool _EXCEL_DLL_ NewBook();
typedef bool (*pNewBook)();
extern pNewBook XlNewBook;
...
// Source ExcelDLL.cpp --------------------------------------------------------------
...
bool LoadLib(char * Path)
{
ExcelDLL=LoadLibrary(Path); //Под отладчиком здесь все нормально
if (!ExcelDLL)
{ ErrorMessage(); return false; }
XlSetColor=(pSetColor)GetProcAddress(ExcelDLL,"SetColor"); // !!! Под отладчиком = 0
if(SetColor) //и попадаем на ошибку
{ ErrorMessage(); FreeLibrary(ExcelDLL); ExcelDLL=NULL; return false;}
XlSetCellsBorder=(pSetCellsBorder)GetProcAddress(ExcelDLL,"SetCellsBorder");
...
Подскажите че не так?! Может VC++ как-то обзывает немного по-другому ф-ции (типа добавляет '__'), но это вряд ли...
Заранее благодарен, с уважением Александр.
12.08.04 15:21: Перенесено модератором из 'C/C++' — WolfHound
Исправлено форматирование. -- ПК
20.10.04 19:42: Перенесено модератором из 'Средства разработки' — Павел Кузнецов