Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [Linker Error] Unresolved external ', на методы моего класса 
:(
    Опции темы
Gunslinger
Дата 10.10.2008, 12:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 842
Регистрация: 30.12.2006
Где: Астрахань

Репутация: нет
Всего: 3



Новая ошибка.
Код

#include "myExcel.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
 myExcel p;
 p.InitMyExcel();
}

Пишет [Linker Error] Unresolved external 'myExcel::InitMyExcel()' referenced from D:\ТЕСТИРУЮ КЛАСС MYEXCEL\UNIT1.OBJ и подозреваю так будет со всеми методами.
Может каких билдеровских директив в myExcel добавить нужно? В гугле говорят, что в через Project\Add to project нужно что-то добавить из lib. Но у меня ни компонентов, ни dll - только функции.
PM MAIL   Вверх
azesmcar
Дата 10.10.2008, 12:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 6
Всего: 211



может покажешь файл myExcel.h и его реализацию или это тайна? а именно обьявление и реализация функции InitMyExcel.

Добавлено через 37 секунд
кстати не забыл включить myExcel.cpp в проект?
PM   Вверх
Gunslinger
Дата 10.10.2008, 13:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 842
Регистрация: 30.12.2006
Где: Астрахань

Репутация: нет
Всего: 3



azesmcar, не знал. Получается main - это файл проекта. Тогда зачем хедер добавлять в unit1.cpp? Это нюанс билдера?
Теперь вместо ошибки линкера другие: E2293 ) expected, да E2303 Type name expected.
+Нужно comobj.hpp объявлять в юнит1? 

myExcel.h:
Код

//Получить ячейку
#ifndef myExcelH
#define myExcelH

class myExcel
   {
     public:
            bool InitMyExcel();//true - не установлен эксел, false - все нормально
            bool InitFile(String& XlsFileName); //---[color=red][C++ Error] myExcel.h(9): E2293 ) expected[/color]
            bool ConvertField(int x,int y, String& Text); //-----[color=red][C++ Error] myExcel.h(10): E2303 Type name expected[/color]
            bool AmountColumn(int x, int y, int amount);//проверяет количество полей
            int KolZap(int x, int y);
            int SeachFieldsData(String& CellName);//ищет ячейку с датой
            int SeachFields(String& CellName);//ищет ячейки. присвоение внешней переменной (возможно структуре имя-адрес)
            //int
     };
#endif


myExcel.cpp (на всякий случай):
Код

#include "myExcel.h"
#include <comobj.hpp>

class myExcel {
    private:
           Variant myExcel;
           Variant myWorkBook;
           Variant myWorkSheets;
           Variant myCell;

           int flagKolZap=0;
           bool flagNotEndJob=true;//âûãðóçêà èç ýêñåëà íå çàêîí÷åíà

           //String
};

bool myExcel::InitMyExcel()
{
 try
    {
      myExcel = CreateOleObject("Excel.Application");
    }
  catch(...)
    {
     return true;
    };
   return false;
};

bool myExcel::InitFile(String& XlsFileName)
{
  myWorkBook=myExcel.OlePropertyGet("WorkBooks");
  try
     {
       myWorkBook.OleProcedure("Open", XlsFileName.c_str());
       
     }
     catch(...)
          {
             return true;
          };
   myWorkSheet=myExcel.OlePropertyGet("WorkSheets");
   myCell=myExcel.OlePropertyGet("Cells");
   return false;
};


Это сообщение отредактировал(а) Gunslinger - 10.10.2008, 13:34
PM MAIL   Вверх
azesmcar
Дата 10.10.2008, 14:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 6
Всего: 211



как зачем? а как он по твоему догадается что этот файл компилировать нужно?

на какой строке он ошибку выдает? коментарий какой нибудь напиши
PM   Вверх
Gunslinger
Дата 10.10.2008, 14:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 842
Регистрация: 30.12.2006
Где: Астрахань

Репутация: нет
Всего: 3



на листинге myExcel.h написал. Цветом выделить не получилось. Строки 9 и 10. Курсор за & становится.

Это сообщение отредактировал(а) Gunslinger - 10.10.2008, 14:40
PM MAIL   Вверх
volvo877
Дата 10.10.2008, 14:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2073
Регистрация: 15.11.2004

Репутация: 13
Всего: 116



Gunslinger, ситуация: Билдер начинает компилировать файл myExcel.cpp, и встречает тип String, который описывается в файле sysmac.h ... Что делать компилятору (без #include <system.hpp> он и не догадывается, что String - это тип)? То, что он и делает: выдавать сообщения об ошибках... Подключи system.hpp и все будет в порядке...

Это сообщение отредактировал(а) volvo877 - 10.10.2008, 14:50
PM MAIL   Вверх
Gunslinger
Дата 10.10.2008, 15:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 842
Регистрация: 30.12.2006
Где: Астрахань

Репутация: нет
Всего: 3



volvo877, спасибо, помогло. Теперь уточнения:
1. В консольнике (я студентил только в турбо с) класс объявляется прописыванием только в main файл. В билдере же хедер нужно прописать и в юнит1.спп, и в проект. Проект в билдере является аналогом main-файла? И если да, то зачем прописвать хедер еще и в юнит1?
2. myExcel.cpp - это реализация h файла. Логично прописывать инклуды (system.h) в хедере, имхо. Но в хедере не заработало. Это логика С++, прописывать сторонние заголовки в реализации?
3. Если один и тот же хедер прописан и в подключаемом классе, и в другом юните, то он загрузится в память дважды или компилятор не даст?
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

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

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

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

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


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

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


 




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


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

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