Форум программистов, компьютерный форум CyberForum.ru

LNK 2001 - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.89
Zealotec
0 / 0 / 0
Регистрация: 05.03.2011
Сообщений: 26
05.05.2012, 02:14     LNK 2001 #1
Error 6 error LNK2001: unresolved external symbol "private: static char * myText::szText" (?szText@myText@@0PADA) test.obj OOPCursEx
Error 7 error LNK2001: unresolved external symbol "public: virtual bool __thiscall myRect:raw(struct HDC__ *)" (?Draw@myRect@@UAE_NPAUHDC__@@@Z) test.obj OOPCursEx

Ув. господа. Что означают эти ошибки и как их можно исправить?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.05.2012, 02:14     LNK 2001
Посмотрите здесь:

C++ error lnk 2019
Error LNK 2019. VS 2010 C++
Работа с tinyxml ошибки LNK 2019 и LNK 2001 C++
error lnk? C++
class String, error lnk C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Avazart
 Аватар для Avazart
6897 / 5137 / 252
Регистрация: 10.12.2010
Сообщений: 22,578
Записей в блоге: 17
05.05.2012, 06:09     LNK 2001 #2
Код с указаными строками лучше приведи
Zealotec
0 / 0 / 0
Регистрация: 05.03.2011
Сообщений: 26
05.05.2012, 11:39  [ТС]     LNK 2001 #3
ща приведу...

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
#ifndef MYTEXT_INCLUDE
#define MYTEXT_INCLUDE
 
#include "myBase.h"
#include "myColor.h"
#include "const.h"
class myText
{
    private:
        Point2D TCoords;
        myColor TextColor;
        myColor BkColor;
        static char szText[MAX_PATH];
        UINT TextAlignment;
 
//---------------------------------------------------------
 
    public:
 
        myText()
        {
            TextColor = (COLORREF)DEF_TEXT_COLOR;
            BkColor = (COLORREF)DEF_TEXT_COLOR;
            szText[MAX_PATH] = (const char)"Text";
            TextAlignment = DEF_TEXT_ALIGN;
        }
 
        myText(Point2D& TCoords, myColor &TextColor, myColor &BkColor, static char szText[MAX_PATH], UINT TextAlignment)
        {
            this->TCoords = TCoords;
            this->TextColor = TextColor;
            this->BkColor = BkColor;
            this->szText[MAX_PATH] = szText[MAX_PATH];
            this->TextAlignment = TextAlignment;
        }
 
        myText(myText &Val)
        {
            *this = Val;
        }
 
//---------------------------------------------------------
 
        __declspec(property(get = GetColor, put = SetColor)) myColor color;
 
//---------------------------------------------------------
 
        myText& operator = (myText &Val)
        {
            TCoords = Val.TCoords;
            TextColor = Val.TextColor;
            BkColor = Val.BkColor;
            szText[MAX_PATH] = Val.szText[MAX_PATH];
            TextAlignment = Val.TextAlignment;
            return *this;
        }
 
//---------------------------------------------------------
 
        bool SetTextColor(HDC hDC)
        {
            return ::SetTextColor(hDC, TextColor.color) != NULL;
        }
 
//---------------------------------------------------------
 
        bool SetBkColor(HDC hDC)
        {
            return ::SetBkColor(hDC, BkColor.color) != NULL;
        }
        
//---------------------------------------------------------
 
        bool SetTextAlign(HDC hDC)
        {
            return ::SetTextAlign(hDC, TextAlignment) != NULL;
        }
        
//---------------------------------------------------------
 
        bool TextOut(HDC hDC)
        {
            return ::TextOut(hDC, TCoords.x, TCoords.y, szText, strlen(szText)) != NULL;
        }
 
//---------------------------------------------------------
 
        bool Draw(HDC hDC);
 
};
 
#endif
воть...
Avazart
 Аватар для Avazart
6897 / 5137 / 252
Регистрация: 10.12.2010
Сообщений: 22,578
Записей в блоге: 17
05.05.2012, 12:50     LNK 2001 #4
Повидимому статическая переменная не инициализирована в не класса и bool Draw(HDC hDC); без тела ф-ции
Zealotec
0 / 0 / 0
Регистрация: 05.03.2011
Сообщений: 26
05.05.2012, 13:46  [ТС]     LNK 2001 #5
хммм...

Draw я описал в другом файле

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
#include "myStatusBar.h"
 
 
// ГѓГ«Г*ГўГ*îå îêГ*Г® Г±ГІГ*ГІГіГ± ГЎГ*Г°Г*
 
 
bool myStatusBar::Draw(HDC hDC)
{
    bool Res = Pen.CreatePen();
    if (Res)
    {
        Res = Pen.ChangePen(hDC);
        if (Res)
        {
            Res = Rectangle(hDC, Left.x, Left.y, Right.x, Right.y) != 0;
            Res = Res && Pen.RestorePen(hDC);
 
 
 
            // ÈêîГ*ГЄГ* ñîñòîÿГ*ГЁГї
 
 
 
            if (Res)
            {
                Res = Brush.CreateBrush();
                if (Res)
                {
                    Res = Brush.ChangeBrush(hDC);
                    if (Res)
                    {
                        Res = Rectangle(hDC, 
                                        Right.x + Left.y - 20 - Right.y, 
                                        Left.y + 20, 
                                        Right.x - 20, 
                                        Right.y - 20) != 0; 
                        Res = Res && Brush.RestoreBrush(hDC);
 
 
 
                        //  Г’ГҐГЄГ±ГІ
 
 
 
                        if (Res)
                        {
                            Res = Text.SetTextColor(hDC);
                            if (Res)
                            {
                                Res = Text.SetBkColor(hDC);
                                if (Res)
                                {
                                    Res = Text.SetTextAlign(hDC);
                                    if (Res)
                                    {
                                        Res = Text.TextOut(hDC);
 
 
 
                                        // Çâóê 
 
 
 
                                        if (Res)
                                        {
                                            Res = Sound.MessageBeep();
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
    return Res;
}
а инициализация строки я даже не знаю, я в главной программе ее в параметрах конструктора инициализировал...

C++
1
2
3
4
5
6
7
8
9
10
static char szText[] = "Text";
    static char szText1[] = "File has been created";
    static char szText2[] = "File has been saved";
    myColor PColor(127, 127, 127), BColor(255, 255, 255), TextColor(0,0,0), BkColor(200,150,220);
    myPen Pen(PS_SOLID, 5, PColor);
    myBrush Brush(BColor);
    Point2D Left(50, 50), Right(650, 150), TCoords(100,350);
    myText Text(TCoords, TextColor, BkColor, szText, strlen(szText));
    mySound Sound(MB_OK);
    myStatusBar StatusBar(Left, Right, Pen, Brush, Text, Sound);
я той строке присваиваю static char szText[] = "Text";
при создании экземпляра класса myText Text(TCoords, TextColor, BkColor, szText, strlen(szText));
Avazart
 Аватар для Avazart
6897 / 5137 / 252
Регистрация: 10.12.2010
Сообщений: 22,578
Записей в блоге: 17
05.05.2012, 13:58     LNK 2001 #6
Статические переменные насколько я знаю инициализируются вне класса так как они существуют "вне объектов" класса и до их создания
Zealotec
0 / 0 / 0
Регистрация: 05.03.2011
Сообщений: 26
05.05.2012, 14:01  [ТС]     LNK 2001 #7
то есть по сути я могу сделать в главной программе так:
myText Text(TCoords, TextColor, BkColor, szText, strlen(szText));
Text::szText = "Text";
и потом уже передать в конструктор другого класса таким образом
myStatusBar StatusBar(Left, Right, Pen, Brush, myText::szText, Sound);??

или я что-то не так понял?
Avazart
 Аватар для Avazart
6897 / 5137 / 252
Регистрация: 10.12.2010
Сообщений: 22,578
Записей в блоге: 17
05.05.2012, 14:12     LNK 2001 #8
C++
1
char myText::szText[] = "Text";
Хотя с char[] не уверен что проканает

Добавлено через 9 минут
http://alenacpp.blogspot.com/2008/12/blog-post.html
Zealotec
0 / 0 / 0
Регистрация: 05.03.2011
Сообщений: 26
05.05.2012, 14:12  [ТС]     LNK 2001 #9
не проканало..., я вот думаю я в объявлении полей и описании конструкторов myText где-то натупил...может там что-то поменять надо
именно с типом поля...
Avazart
 Аватар для Avazart
6897 / 5137 / 252
Регистрация: 10.12.2010
Сообщений: 22,578
Записей в блоге: 17
05.05.2012, 14:15     LNK 2001 #10
Что значит не проканало?
Я не телепат...
Zealotec
0 / 0 / 0
Регистрация: 05.03.2011
Сообщений: 26
05.05.2012, 14:18  [ТС]     LNK 2001 #11
static char myText::szText[] = "Text";

myText Text(TCoords, TextColor, BkColor, myText::szText, strlen(myText::szText));

Error 3 error C2655: 'myText::szText' : definition or redeclaration illegal in current scope c:\users\админ\desktop\операционный стол\oopcursex\test.cpp 21 OOPCursEx
Error 4 error C2720: 'myText::szText' : 'static ' storage-class specifier illegal on members c:\users\админ\desktop\операционный стол\oopcursex\test.cpp 21 OOPCursEx
Error 5 error C2248: 'myText::szText' : cannot access private member declared in class 'myText' c:\users\админ\desktop\операционный стол\oopcursex\test.cpp 28 OOPCursEx
Error 6 error C2248: 'myText::szText' : cannot access private member declared in class 'myText' c:\users\админ\desktop\операционный стол\oopcursex\test.cpp 28 OOPCursEx
Error 7 error C2065: 'szText' : undeclared identifier c:\users\админ\desktop\операционный стол\oopcursex\test.cpp 56 OOPCursEx
Error 8 error C2065: 'szText' : undeclared identifier c:\users\админ\desktop\операционный стол\oopcursex\test.cpp 63 OOPCursEx
Avazart
 Аватар для Avazart
6897 / 5137 / 252
Регистрация: 10.12.2010
Сообщений: 22,578
Записей в блоге: 17
05.05.2012, 14:22     LNK 2001 #12
Создай статический метод и с помощью его устанавливай значение статической переменной
И я бы использовал std::string вместо char[]
Zealotec
0 / 0 / 0
Регистрация: 05.03.2011
Сообщений: 26
05.05.2012, 14:26  [ТС]     LNK 2001 #13
благодарю за совет, сейчас попробую и отпишусь
а для std::string надо какой-то заголовочный файл подключать?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.05.2012, 14:38     LNK 2001
Еще ссылки по теме:

C++ Выдает ошибку LNK 2019
C++ Error LNK 2001
C++ LNK Ошибки - 2019 и 1120

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Avazart
 Аватар для Avazart
6897 / 5137 / 252
Регистрация: 10.12.2010
Сообщений: 22,578
Записей в блоге: 17
05.05.2012, 14:38     LNK 2001 #14
C++
1
#include <string>
Yandex
Объявления
05.05.2012, 14:38     LNK 2001
Ответ Создать тему
Опции темы

Текущее время: 05:29. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru