Вызов функций из внешнего модуля

Тема в разделе "Borland C++ Builder & Kylix", создана пользователем d777, 13 окт 2007.

Статус темы:
Закрыта.
  1. d777

    d777 Гость

    Нужна помощь.
    Создаю модуль, в котором будут находиться некоторые функции.
    CPP файл :
    Код (Text):
    #include <vcl.h>
    #pragma hdrstop
    #include <Proc.h>
    AnsiString SQL_str;



    void Procdr::SQL_Formf (AnsiString Login_str);
    {
    Main->IBLogin->SelectSQL->Clear();
    Login_str = Login->edit_login->Text;
    SQL_str = "SELECT * FROM CARDS, USERS WHERE (CARDS.CID = USERS.ID) AND (USERS.LOGIN = '";
    SQL_str = SQL_str + Login_str;
    SQL_str = SQL_str + "')";
    Main->IBLogin->SelectSQL->Add(SQL_str);
    Main->IBLogin->Open();
    Low->Caption = "Staff Department : User Card : " + Main->IBLogin->FieldByName("FULLNAME")->AsString;
    }
    H файл этого модуля
    Код (Text):
    class Procdr
    {
    public:
    static void SQL_Formf (AnsiString Login_str);
    }
    а потом в главном модуле
    Код (Text):
    #include "Proc.h"
    ...
    SQL_Formf(login_text);
    получаю
    почему из главного модуля нельзя обратиться к этой функции ? Объясните в чем проблема пожалуйста.
     
  2. d777

    d777 Гость

    Вызываю
    Код (Text):
    #include "Proc.h"
    ...
    Procdr::SQL_Formf(login_text);
    Получаю
     
  3. Pasha

    Pasha Гость

    Для: d777
    Догадка, но:
    Код (Text):
    void Procdr::SQL_Formf (AnsiString Login_str); <--- убери тут;
     
  4. d777

    d777 Гость

    Для: Pasha
    Ошибка всё та же.
     
  5. Pasha

    Pasha Гость

    Для: d777
    В хедере:
    Код (Text):
    class Procdr
    {
    public:
    static void SQL_Formf1(char* str);
    };
    в CPP:
    Код (Text):
    #include "Proc.h"
    void Procdr::SQL_Formf1(char* str)
    {
    }
    , в главном:
    Код (Text):
    Procdr::SQL_Formf1(0);
    Скорее всего у тебя в мелочах ошибка. Например, после объявления класса ; нет.
     
  6. d777

    d777 Гость

    Ошибка была очень глупая. Не был подключен Proc.cpp к проекту. Подключил. Появились другие ошибки, исправил. Теперь это выглядит так :
    .CPP
    Код (Text):
    #include <vcl.h>
    #pragma hdrstop
    #include <Proc.h>
    AnsiString SQL_str;



    void SQL_Formf (AnsiString Login_str)
    {
    Main->IBLogin->SelectSQL->Clear();
    Login_str = Login->edit_login->Text;
    SQL_str = "SELECT * FROM CARDS, USERS WHERE (CARDS.CID = USERS.ID) AND (USERS.LOGIN = '";
    SQL_str = SQL_str + Login_str;
    SQL_str = SQL_str + "')";
    Main->IBLogin->SelectSQL->Add(SQL_str);
    Main->IBLogin->Open();
    Low->Caption = "Staff Department : User Card : " + Main->IBLogin->FieldByName("FULLNAME")->AsString;
    }
    .H
    Код (Text):
    class Procdr
    {
    public:
    static void SQL_Formf (AnsiString Login_str);
    }
    Появляется все та же ошибка. Хотя теперь ей казалось бы неоткуда браться.
    char* ставить вместо AnsiString не хотелось бы.
    Мне кажется, это не мелочь. Ошибку линкера сложно назвать мелочью.
     
  7. Pasha

    Pasha Гость

    Для: d777
    Ну я же дал рабочий пример. Найди два отличия. Поставь точку с запятой после объявления класса и добавь Procdr:: перед именем функции в cpp.
     
  8. d777

    d777 Гость

    Для: Pasha
    Большое спасибо. Вроде бы пробовал этот вариант, но сейчас ошибки не появляются. Другое дело, что это работает пока не так как надо. :)
     
Загрузка...
Похожие Темы - Вызов функций из
  1. k85
    Ответов:
    0
    Просмотров:
    363
  2. alexas1
    Ответов:
    0
    Просмотров:
    509
  3. Sanchezz86
    Ответов:
    1
    Просмотров:
    591
  4. vln1981
    Ответов:
    0
    Просмотров:
    713
  5. JohnLemon
    Ответов:
    3
    Просмотров:
    901
Статус темы:
Закрыта.

Поделиться этой страницей