Поиск:

Ответ в темуСоздание новой темы Создание опроса
> В чем дело? [Linker Error] Unresolved external 
:(
    Опции темы
ChihPih
  Дата 11.7.2007, 13:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Привет всем!
Помогите с проблемой:
Вот функция в dll(*.cpp):

Код

bool WINAPI IsWin32(char *FilePath)
{
  IMAGE_DOS_HEADER dos_header;
  DWORD signature;
  TFileStream *FS;
  bool res;

  res = false;
  FS = new TFileStream(FilePath, fmOpenRead);
  FS->Read(&dos_header, sizeof(dos_header));
  if (dos_header.e_magic == IMAGE_DOS_SIGNATURE){
      FS->Seek(dos_header.e_lfanew, soFromBeginning);
      FS->Read(&signature, sizeof(signature));
      if (signature == IMAGE_NT_SIGNATURE){ res = true; }
  }
  delete FS;
  return res;
}


Вот код в *.h
Код

extern "C"{
    bool WINAPI __declspec(dllexport) IsWin32(char *FilePath);
}


При компиляции выдает следующую ошибку:

[Linker Error] Unresolved external '__fastcall Classes::TFileStream::~TFileStream()' referenced from D:\...\DLL\DATA\MAIN.OBJ

[Linker Error] Unresolved external 'Classes::TFileStream::' referenced from 
D:\...\DLL\DATA\MAIN.OBJ

В чем дело?
Заранее спасибо!



--------------------
www.info-x.org - информационный ресурс о ОС FreeBSD. Форум.
PM MAIL WWW Jabber   Вверх
Fazil6
Дата 11.7.2007, 15:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1653
Регистрация: 3.5.2006
Где: Минск

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



здесь все в порядке. Где-то в другом месте косяк
PM MAIL   Вверх
_hunter
Дата 11.7.2007, 15:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

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



TFileStream юзаеш, а заголовок приинклюдил?..


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
Fazil6
Дата 11.7.2007, 15:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1653
Регистрация: 3.5.2006
Где: Минск

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



Цитата(_hunter @  11.7.2007,  15:37 Найти цитируемый пост)
TFileStream юзаеш, а заголовок приинклюдил?

по всем признакам приинклудил, ибо линкер ругается, а не компиллятор
PM MAIL   Вверх
ChihPih
Дата 11.7.2007, 15:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(_hunter @  11.7.2007,  15:37 Найти цитируемый пост)

TFileStream юзаеш, а заголовок приинклюдил?.. 


Вот полный код:

(*.cpp)

Код

//---------------------------------------------------------------------------

#include <windows.h>
#include <Classes.hpp>

//---------------------------------------------------------------------------
#pragma argsused
#include "Main.h"
int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void* lpReserved)
{
  return 1;
}
//---------------------------------------------------------------------------

//Check files
//==========================================================================
bool WINAPI IsWin32(char *FilePath)
{
  IMAGE_DOS_HEADER dos_header;
  DWORD signature;
  TFileStream *FS;
  bool res;

  res = false;
  FS = new TFileStream(FilePath, fmOpenRead);
  FS->Read(&dos_header, sizeof(dos_header));
  if (dos_header.e_magic == IMAGE_DOS_SIGNATURE){
      FS->Seek(dos_header.e_lfanew, soFromBeginning);
      FS->Read(&signature, sizeof(signature));
      if (signature == IMAGE_NT_SIGNATURE){ res = true; }
  }
  delete FS;
  return res;
}
//==========================================================================


(*.h)

Код

extern "C"{
    bool WINAPI __declspec(dllexport) IsWin32(char *FilePath);
}



Это сообщение отредактировал(а) ChihPih - 11.7.2007, 15:52


--------------------
www.info-x.org - информационный ресурс о ОС FreeBSD. Форум.
PM MAIL WWW Jabber   Вверх
Fazil6
Дата 11.7.2007, 16:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1653
Регистрация: 3.5.2006
Где: Минск

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



 ты видимо без runtime packages  компиллируешь и при создании снял галку Use VCL.
 
либо вернуться к динамической линковке, либо создать заново с галкой  Use VCL
PM MAIL   Вверх
ChihPih
Дата 11.7.2007, 18:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Пасибо за помощь!


--------------------
www.info-x.org - информационный ресурс о ОС FreeBSD. Форум.
PM MAIL WWW Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




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


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

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