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