2014-07-07 132 views
0

我目前正在寫一個反彙編occurced一個內部錯誤,現在我要創建新的字符串,這樣的:QT:在編譯

// Disassembler Sourcefile 

// better known as DisAsm 
#include "disassembler.h" 

#include <QString> 

Disassembler::Disassembler() 
{ 
    QString *_protos = new QString[] { "NOP", 
     "LD BC,d16", 
     "LD (BC),A", 
     "INC BC", 
     "INC B", 
     "DEC B", 
     "LD B,d8", 
     "RLCA", 
     "LD (a16),SP", 
     "ADD HL,BC", 
     "LD A,(BC)", 
     "DEC BC", 
     "INC C", 
     "DEC C", 
     "LD C,d8", 
     "RRCA", 
     "STOP 0", 
     "LD DE,d16", 
     "LD (DE),A", 
     "INC DE", 
     "INC D", 
     "DEC D", 
     "LD D,d8", 
     "RLA", 
     "JR r8", 
     "ADD HL,DE", 
     "LD A,(DE)", 
     "DEC DE", 
     "INC E", 
     "DEC E", 
     "LD E,d8", 
     "RRA", 
     "JR NZ,r8", 
     "LD HL,d16", 
     "LD (HL+),A", 
     "INC HL", 
     "INC H", 
     "DEC H", 
     "LD H,d8", 
     "DAA", 
     "JR Z,r8", 
     "ADD HL,HL", 
     "LD A,(HL+)", 
     "DEC HL", 
     "INC L", 
     "DEC L", 
     "LD L,d8", 
     "CPL", 
     "JR NC,r8", 
     "LD SP,d16", 
     "LD (HL-),A", 
     "INC SP", 
     "INC (HL)", 
     "DEC (HL)", 
     "LD (HL),d8", 
     "SCF", 
     "JR C,r8", 
     "ADD HL,SP", 
     "LD A,(HL-)", 
     "DEC SP", 
     "INC A", 
     "DEC A", 
     "LD A,d8", 
     "CCF", 
     "LD B,B", 
     "LD B,C", 
     "LD B,D", 
     "LD B,E", 
     "LD B,H", 
     "LD B,L", 
     "LD B,(HL)", 
     "LD B,A", 
     "LD C,B", 
     "LD C,C", 
     "LD C,D", 
     "LD C,E", 
     "LD C,H", 
     "LD C,L", 
     "LD C,(HL)", 
     "LD C,A", 
     "LD D,B", 
     "LD D,C", 
     "LD D,D", 
     "LD D,E", 
     "LD D,H", 
     "LD D,L", 
     "LD D,(HL)", 
     "LD D,A", 
     "LD E,B", 
     "LD E,C", 
     "LD E,D", 
     "LD E,E", 
     "LD E,H", 
     "LD E,L", 
     "LD E,(HL)", 
     "LD E,A", 
     "LD H,B", 
     "LD H,C", 
     "LD H,D", 
     "LD H,E", 
     "LD H,H", 
     "LD H,L", 
     "LD H,(HL)", 
     "LD H,A", 
     "LD L,B", 
     "LD L,C", 
     "LD L,D", 
     "LD L,E", 
     "LD L,H", 
     "LD L,L", 
     "LD L,(HL)", 
     "LD L,A", 
     "LD (HL),B", 
     "LD (HL),C", 
     "LD (HL),D", 
     "LD (HL),E", 
     "LD (HL),H", 
     "LD (HL),L", 
     "HALT", 
     "LD (HL),A", 
     "LD A,B", 
     "LD A,C", 
     "LD A,D", 
     "LD A,E", 
     "LD A,H", 
     "LD A,L", 
     "LD A,(HL)", 
     "LD A,A", 
     "ADD A,B", 
     "ADD A,C", 
     "ADD A,D", 
     "ADD A,E", 
     "ADD A,H", 
     "ADD A,L", 
     "ADD A,(HL)", 
     "ADD A,A", 
     "ADC A,B", 
     "ADC A,C", 
     "ADC A,D", 
     "ADC A,E", 
     "ADC A,H", 
     "ADC A,L", 
     "ADC A,(HL)", 
     "ADC A,A", 
     "SUB B", 
     "SUB C", 
     "SUB D", 
     "SUB E", 
     "SUB H", 
     "SUB L", 
     "SUB (HL)", 
     "SUB A", 
     "SBC A,B", 
     "SBC A,C", 
     "SBC A,D", 
     "SBC A,E", 
     "SBC A,H", 
     "SBC A,L", 
     "SBC A,(HL)", 
     "SBC A,A", 
     "AND B", 
     "AND C", 
     "AND D", 
     "AND E", 
     "AND H", 
     "AND L", 
     "AND (HL)", 
     "AND A", 
     "XOR B", 
     "XOR C", 
     "XOR D", 
     "XOR E", 
     "XOR H", 
     "XOR L", 
     "XOR (HL)", 
     "XOR A", 
     "OR B", 
     "OR C", 
     "OR D", 
     "OR E", 
     "OR H", 
     "OR L", 
     "OR (HL)", 
     "OR A", 
     "CP B", 
     "CP C", 
     "CP D", 
     "CP E", 
     "CP H", 
     "CP L", 
     "CP (HL)", 
     "CP A", 
     "RET NZ", 
     "POP BC", 
     "JP NZ,a16", 
     "JP a16", 
     "CALL NZ,a16", 
     "PUSH BC", 
     "ADD A,d8", 
     "RST 00H", 
     "RET Z", 
     "RET", 
     "JP Z,a16", 
     "PREFIX CB", 
     "CALL Z,a16", 
     "CALL a16", 
     "ADC A,d8", 
     "RST 08H", 
     "RET NC", 
     "POP DE", 
     "JP NC,a16", 
     "???", 
     "CALL NC,a16", 
     "PUSH DE", 
     "SUB d8", 
     "RST 10H", 
     "RET C", 
     "RETI", 
     "JP C,a16", 
     "???", 
     "CALL C,a16", 
     "???", 
     "SBC A,d8", 
     "RST 18H", 
     "LDH (a8),A", 
     "POP HL", 
     "LD (C),A", 
     "???", 
     "???", 
     "PUSH HL", 
     "AND d8", 
     "RST 20H", 
     "ADD SP,r8", 
     "JP HL", 
     "LD (a16),A", 
     "???", 
     "???", 
     "???", 
     "XOR d8", 
     "RST 28H", 
     "LDH A,(a8)", 
     "POP AF", 
     "LD A,(C)", 
     "DI", 
     "???", 
     "PUSH AF", 
     "OR d8", 
     "RST 30H", 
     "LD HL,SP+r8", 
     "LD SP,HL", 
     "LD A,(a16)", 
     "EI", 
     "???", 
     "???", 
     "CP d8", 
     "RST 38H" }; 
} 

但現在我在上線/管線256得到一個錯誤(意味着完整文件的最後一行)。

C:\ Users \ Jan \ Desktop \ GB Emulator \ gbx00 \ disassembler.cpp:265:錯誤:C1001:編譯器中發生內部錯誤。

我試圖將「};」替換爲「只有一個「}」,但這並沒有奏效。我怎樣才能解決這個問題?

注:我會嘗試將C#代碼翻譯成C++/Qt。

+0

你能澄清你的文章嗎?首先點265.第二爲什麼c#有關? – UmNyobe

+0

@UmNyobe因爲我將C#代碼翻譯成C++來使用它。 – Jan

+0

'新的QString []'返回一個'QString [] *' – UmNyobe

回答

2

如果你需要創建的QString秒的排列應該是:

QString _protos[] = { "NOP", 
         "LD BC,d16", 
         "LD (BC),A", 
         ... 
         "RST 38H" }; 

代替。

+0

謝謝這工作完美:) – Jan