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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.89
Zealotec
0 / 0 / 0
Регистрация: 05.03.2011
Сообщений: 26
#1

LNK 2001 - C++

05.05.2012, 02:14. Просмотров 1272. Ответов 13
Метки нет (Все метки)

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

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

Работа с tinyxml ошибки LNK 2019 и LNK 2001 - C++
всем привет! скачал архив tinyxml, разархивировал в папку проекта затем написал следующий код: #include "stdafx.h" #include...

Error LNK 2001 - C++
Здрасьте, помогите быдлокодеру разобраться В общем у меня вроде все файлы проекта друг к другу подключены, но вот такие ошибки линовки ...

Ошибки LNK 2005, LNK 1169 - C++
Не могу найти ошибку в проге: functions.h ----------- #include <iostream> #include <iomanip> #include <conio.h> #include...

error lnk? - C++
При компиляции вылазит такая штука: 1>ConsoleApplication.obj : error LNK2028: ёё√ыър эр эхЁрчЁх°хээє■ ыхъёхьє (0A0005DE) "public:...

error lnk 2019 - C++
здраствуйте! решил заняться win api и mfc, открываю книгу "Visual C++. Разработка Windows-приложений с помощью MFC и API-функций" пишу...

MSDN 2001 на 4 дисках, есть у кого(Питер) - C++
Народ, помогите! Есть ли у кого этот MSDN 2001, мне нужен 1 диск, просто оный испортился а новое впадлу покупать. Если есть у кого -...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Avazart
Эксперт С++
7191 / 5365 / 280
Регистрация: 10.12.2010
Сообщений: 23,673
Записей в блоге: 17
05.05.2012, 06:09 #2
Код с указаными строками лучше приведи
0
Zealotec
0 / 0 / 0
Регистрация: 05.03.2011
Сообщений: 26
05.05.2012, 11:39  [ТС] #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
воть...
0
Avazart
Эксперт С++
7191 / 5365 / 280
Регистрация: 10.12.2010
Сообщений: 23,673
Записей в блоге: 17
05.05.2012, 12:50 #4
Повидимому статическая переменная не инициализирована в не класса и bool Draw(HDC hDC); без тела ф-ции
0
Zealotec
0 / 0 / 0
Регистрация: 05.03.2011
Сообщений: 26
05.05.2012, 13:46  [ТС] #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));
0
Avazart
Эксперт С++
7191 / 5365 / 280
Регистрация: 10.12.2010
Сообщений: 23,673
Записей в блоге: 17
05.05.2012, 13:58 #6
Статические переменные насколько я знаю инициализируются вне класса так как они существуют "вне объектов" класса и до их создания
0
Zealotec
0 / 0 / 0
Регистрация: 05.03.2011
Сообщений: 26
05.05.2012, 14:01  [ТС] #7
то есть по сути я могу сделать в главной программе так:
myText Text(TCoords, TextColor, BkColor, szText, strlen(szText));
Text::szText = "Text";
и потом уже передать в конструктор другого класса таким образом
myStatusBar StatusBar(Left, Right, Pen, Brush, myText::szText, Sound);??

или я что-то не так понял?
0
Avazart
Эксперт С++
7191 / 5365 / 280
Регистрация: 10.12.2010
Сообщений: 23,673
Записей в блоге: 17
05.05.2012, 14:12 #8
C++
1
char myText::szText[] = "Text";
Хотя с char[] не уверен что проканает

Добавлено через 9 минут
http://alenacpp.blogspot.com/2008/12/blog-post.html
0
Zealotec
0 / 0 / 0
Регистрация: 05.03.2011
Сообщений: 26
05.05.2012, 14:12  [ТС] #9
не проканало..., я вот думаю я в объявлении полей и описании конструкторов myText где-то натупил...может там что-то поменять надо
именно с типом поля...
0
Avazart
Эксперт С++
7191 / 5365 / 280
Регистрация: 10.12.2010
Сообщений: 23,673
Записей в блоге: 17
05.05.2012, 14:15 #10
Что значит не проканало?
Я не телепат...
0
Zealotec
0 / 0 / 0
Регистрация: 05.03.2011
Сообщений: 26
05.05.2012, 14:18  [ТС] #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
0
Avazart
Эксперт С++
7191 / 5365 / 280
Регистрация: 10.12.2010
Сообщений: 23,673
Записей в блоге: 17
05.05.2012, 14:22 #12
Создай статический метод и с помощью его устанавливай значение статической переменной
И я бы использовал std::string вместо char[]
1
Zealotec
0 / 0 / 0
Регистрация: 05.03.2011
Сообщений: 26
05.05.2012, 14:26  [ТС] #13
благодарю за совет, сейчас попробую и отпишусь
а для std::string надо какой-то заголовочный файл подключать?
0
Avazart
Эксперт С++
7191 / 5365 / 280
Регистрация: 10.12.2010
Сообщений: 23,673
Записей в блоге: 17
05.05.2012, 14:38 #14
C++
1
#include <string>
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.05.2012, 14:38
Привет! Вот еще темы с ответами:

Выдает ошибку LNK 2019 - C++
#include &quot;integer_map.hpp&quot; #include &quot;integer_vector.hpp&quot; #include &lt;iostream&gt; #include &lt;cassert&gt; struct IntegerMap ...

LNK 2019 с использованием вектора - C++
Здравствуйте! Пишу программу, которая ссылается на статическую библиотеку содержащую в себе сортировки различными способами(Пузырьком,...

Шаблон с++ (Ошибка LNK 2019) - C++
Не понимаю в чем ошибка, если оставить объявление шаблона функции и реализацию в main то все работает, но если разбить на файлы...

class String, error lnk - C++
class String { friend std::istream&amp; operator&gt;&gt;(std::istream&amp;, String&amp;); // Функция ввода public: typedef...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
05.05.2012, 14:38
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru