Поиск:

Ответ в темуСоздание новой темы Создание опроса
> использовать my.h и my.cpp в CBuilder\Include, Unresolved external <имя функции> 
:(
    Опции темы
W03L
Дата 3.9.2007, 06:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Привет.
Проблемка такая:
создал свой модуль, кусок кода:
my.h
#ifndef myH
#define myH

#include <SysUtils.hpp>
//---------------------------------------------------------------------------
void f_msg(AnsiString mess,char kind,HWND h=NULL,AnsiString cap="Ошибка данных");
//---------------------------------------------------------------------------
#endif

my.cpp
#pragma hdrstop
#include "my.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
//---------------------------------------------------------------------------
void f_msg(AnsiString mess,char kind,HWND h,AnsiString cap)
{
  UINT mt=0;
  if (kind=='e') mt=MB_ICONERROR;
  else
  if (kind=='w') mt=MB_ICONWARNING;
  else
  if (kind=='i') mt=MB_ICONINFORMATION;
  MessageBox(h,mess.c_str(),cap.c_str(),mt);
}
//---------------------------------------------------------------------------

Скопировал это в папку builderа Borland\CBuilder6\Include\.
Создал новое приложение и там поставил #include <my.h>
При запуске он почему-то не находит тело функции f_msg
пишет [Linker Error] Unresolved external 'f_msg...
хотя компиляция проходит нормально.

Подскажите как сделать чтобы можно было юзать MY.H в стандартном пути #include <>?
PM MAIL   Вверх
JackYF
Дата 3.9.2007, 07:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

Репутация: 4
Всего: 162



Цитата(W03L @  3.9.2007,  06:53 Найти цитируемый пост)
пишет [Linker Error] Unresolved external 'f_msg...

эх... это проблема неподключения .cpp - файла. Если бы оно не увидело .h-файл, компилятор ругнулся бы значительно раньше.
Добавь .cpp - файл в проект.

И .cpp-файлы никто в Include, а тем более системные, не ложит.


--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
vmark
Дата 3.9.2007, 08:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



хедер и так прога найдет , она у тебя не видет срр .... добавь его в проект и будет счастье ... smile , в твоем случае прога ищет либу ...
PM MAIL   Вверх
Lazin
Дата 3.9.2007, 10:41 (ссылка) |   (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

Репутация: 18
Всего: 154



Перемести тело ф-ии в заголовочный файл
зы
как вариант, но такая практика - полнейшая дурь. Свой код не стоит смешивать со стандартными библиотеками, лучше положить в папку с проектом, а то потом запаришся искать, и при переносе проекта на другой комп кой-чего будет нехватать. А реализация кода ф-ии в заголовочном файле повлечёт излишние перекомпиляции при изменении кода.
PM MAIL Skype GTalk   Вверх
W03L
Дата 4.9.2007, 04:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Просто у меня многие проекты будут использовать этот модуль. Если хранить его в каждом - это занимает место и если я чего-нибудь изменю в my.h или my.cpp, то везде надо менять, а так он будет в одном месте со стандартным путём.
Его надо как-то зарегестрировать в билдере (типа компоненты), но как я не знаю :(

Это сообщение отредактировал(а) W03L - 4.9.2007, 04:03
PM MAIL   Вверх
Lazin
Дата 4.9.2007, 08:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

Репутация: 18
Всего: 154



Создай статическую библиотеку, и линкуй ко всем проектам. 
Цитата

Если хранить его в каждом - это занимает место и если я чего-нибудь изменю в my.h или my.cpp, то везде надо менять, а так он будет в одном месте со стандартным путём.

6-й билдер создаёт в папке Projects папки Lib и Bpl. Подразумевается, что либы туда будут ложить.
PS
в vcl есть стандартные диалоги, которые делают примерно то-же что и твой код. 
PPS
Dialogs.hpp
PM MAIL Skype GTalk   Вверх
W03L
Дата 5.9.2007, 03:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Сенкс, статическая библиотека нормально работает smile
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

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

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

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

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


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

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


 




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


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

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