Thema: C++ Classen in C++

Einzelnen Beitrag anzeigen

Benutzerbild von BUG
BUG

Registriert seit: 4. Dez 2003
Ort: Cottbus
2.094 Beiträge
 
#11

AW: Classen in C++

  Alt 4. Mär 2014, 17:57
Ich denke, ich habe das Problem gefunden:

Deine Klassenvariablen hast du nur deklariert, aber nicht definiert. Siehe z.B. diesen Blog-Eintrag.
Andererseits definierst du dir in jeder Datei, die "Language.h" einbindet, die Variable sTextChannelAssignment neu.

Lösung:

Language.cpp
Code:
#include "stdafx.h"
#include "Language.h"

char *sTextChannelAssignment[MAX_CHANNELASSIGNMENT_STRINGS] =
{"Off",                   //0
"Top",                    //1
"Right",                  //2
"Bottom",                 //3
"Left",                   //4
"Combined",               //5
};

CString CLanguage::sText[MAX_CHANNELASSIGNMENT_STRINGS];
char CLanguage::szCurrentDir[MAX_PATH];
char CLanguage::szFileINI[MAX_PATH];
char CLanguage::szLang[MAX_PATH];
char CLanguage::szTemp[512];
char CLanguage::Buffer[1024];
char CLanguage::szParam[32];   

CLanguage::CLanguage(void)
{
}


CLanguage::~CLanguage(void)
{
}

char CLanguage::GetCurrentDir()
{
   int i = GetCurrentDirectory(255, (char*)szCurrentDir);
   if (szCurrentDir[i - 1] == '\\')
     szCurrentDir[i - 1] = 0;

   return szCurrentDir[i];
}
Language.h
Code:
#pragma once

#include "atlstr.h"

#define MAX_CHANNELASSIGNMENT_STRINGS 6

extern char *sTextChannelAssignment[MAX_CHANNELASSIGNMENT_STRINGS];

class CLanguage
{
private:

public:
   static CString sText[MAX_CHANNELASSIGNMENT_STRINGS];
  static char szCurrentDir[MAX_PATH];
  static char szFileINI[MAX_PATH];
  static char szLang[MAX_PATH], szTemp[512], Buffer[1024], szParam[32];   

   static char GetCurrentDir();

   CLanguage(void);
   virtual ~CLanguage(void);

};
Ich konnte es leider nicht ausprobieren, da ich unter Windows keinen C++-Compiler installiert habe
  Mit Zitat antworten Zitat