Yardım Multilanguage system hatası

Konu sahibi bu konuda soru soruyor. Sorusu ile ilgili bilgisi olanların yanıtlamasını bekliyor.

sandil12

MT Üye
MT Üye
Mesaj
185
Çözümler
6
Beğeni
114
Puan
759
Ticaret Puanı
0
İyi günler kolay gelsin Multilanguage system ekliyorum client pack tarafını bitirdim sadece game tarafı kaldı fakat şöyle bir hata alıyorum da mantıksız geldi bana


Kod:
start_position.h:16:33: error: macro "LC_TEXT" requires 2 arguments, but only 1 given
In file included from start_position.cpp:2:
start_position.h: In function 'const char* EMPIRE_NAME(BYTE)':
start_position.h:16: error: 'LC_TEXT' was not declared in this scope

hata alan dosya
C++:
#ifndef __START_POSITION_H
#define __START_POSITION_H

#include "locale_service.h"

extern char g_nation_name[4][32];
extern DWORD g_start_position[7][2];
extern long g_start_map[7];
extern DWORD g_create_position[7][2];
extern DWORD g_create_position_canada[7][2];
extern DWORD arena_return_position[4][2];


inline const char* EMPIRE_NAME( BYTE e)
{
    return LC_TEXT(g_nation_name[e]);
}

inline DWORD EMPIRE_START_MAP(BYTE e)
{
    return g_start_map[e];
}

inline DWORD EMPIRE_START_X(BYTE e)
{
    if (1 <= e && e <= 6)
        return g_start_position[e][0];

    return 0;
}

inline DWORD EMPIRE_START_Y(BYTE e)
{
    if (1 <= e && e <= 6)
        return g_start_position[e][1];

    return 0;
}

inline DWORD ARENA_RETURN_POINT_X(BYTE e)
{
    if (1 <= e && e <= 3)
        return arena_return_position[e][0];

    return 0;
}

inline DWORD ARENA_RETURN_POINT_Y(BYTE e)
{
    if (1 <= e && e <= 3)
        return arena_return_position[e][1];

    return 0;
}

inline DWORD CREATE_START_X(BYTE e)
{
    if (1 <= e && e <= 6)
    {
        if (LC_IsCanada() == true)
            return g_create_position_canada[e][0];

        return g_create_position[e][0];
    }

    return 0;
}

inline DWORD CREATE_START_Y(BYTE e)
{
    if (1 <= e && e <= 6)
    {
        if (LC_IsCanada() == true)
            return g_create_position_canada[e][1];

        return g_create_position[e][1];
    }

    return 0;
}

#endif

Hata alan kısım:

C++:
inline const char* EMPIRE_NAME( BYTE e)
{
    return LC_TEXT(g_nation_name[e]);
}


Normalde kullandığım komut :
Kod:
LC_TEXT(TRANSLATE_LANGUAGE,


C++:
inline const char* EMPIRE_NAME( BYTE e)
{
    return LC_TEXT(TRANSLATE_LANGUAGE,g_nation_name[e]);
}

Hata :
Kod:
In file included from start_position.cpp:2:
start_position.h: In function 'const char* EMPIRE_NAME(BYTE)':
start_position.h:16: error: 'TRANSLATE_LANGUAGE' was not declared in this scope
 
LC_TEXT fonksiyonuna bir tane argument göndermeye çalışılıyor ama fonksiyon için iki tane tanımlanmış. Eklemeye çalıştığınız sistemde ya bi eksiklik var yada kaynak kodlarına geçirirken bir yerleri atladınız

2. hatada ise TRANSLATE_LANGUAGE bu isimle tanımlanmış sabit yok.
 
Kaynak konusunu ekledim tekrar gözden geçireceğim
Eklemeye çalıştıgın sistemin konusunu dahil eder misin?

LC_TEXT fonksiyonuna bir tane argument göndermeye çalışılıyor ama fonksiyon için iki tane tanımlanmış. Eklemeye çalıştığınız sistemde ya bi eksiklik var yada kaynak kodlarına geçirirken bir yerleri atladınız

2. hatada ise TRANSLATE_LANGUAGE bu isimle tanımlanmış sabit yok.


Hocam bu hatayı = LC_TEXT fonksiyonuna bir tane argument göndermeye çalışılıyor ama fonksiyon için iki tane tanımlanmış.

Tüm dosyalarda karşılaştım ve toplu değiştirdim örneğin
içinde LC_TEXT GEÇEN TÜM KOMUTLARI LC_TEXT(TRANSLATE_LANGUAGE, şeklinde değiştirince hata çıkmadı .

Kodlarda yaptığım değişikler sadece gcc sürümümden dolayı bu oldu

Kod:
unique_ptr  değiştirdim auto_ptr
 

Dosya Eklentileri

  • multilang_system-master .zip
    637,3 KB · Gösterim: 29
Konunun paylaşıldıgı yerde yorumları okudunuz mu belki orada aynı problemi yaşayanlar çözümü paylaşmıştır.
 
Şu hata için;
Kod:
In file included from start_position.cpp:2:
start_position.h: In function 'const char* EMPIRE_NAME(BYTE)':
start_position.h:16: error: 'TRANSLATE_LANGUAGE' was not declared in this scope

TRANSLATE_LANGUAGE lenght.h dosyasına tanımlanmış. start_position.h derlenirken bu sabiti bulamadığı için hata vermiş.

start_position.h doyasını şu komutu ekleyebilir misiniz?
C++:
#include "../../common/length.h"
 
Konunun paylaşıldıgı yerde yorumları okudunuz mu belki orada aynı problemi yaşayanlar çözümü paylaşmıştır.
Yorumları okudum bir kişide varmış bu problem cevap verende olmamıştı.

Şu hata için;
Kod:
In file included from start_position.cpp:2:
start_position.h: In function 'const char* EMPIRE_NAME(BYTE)':
start_position.h:16: error: 'TRANSLATE_LANGUAGE' was not declared in this scope

TRANSLATE_LANGUAGE lenght.h dosyasına tanımlanmış. start_position.h derlenirken bu sabiti bulamadığı için hata vermiş.

start_position.h doyasını şu komutu ekleyebilir misiniz?
C++:
#include "../../common/length.h"

Bu işlerde tecrübe sahibi olmak çok önemli bunu anladım şimdi deniyorum sonucu bildiririmde kesinlikle olacaktır ondan sonra denemelere geçebilirim
 
Geri
Üst