2014-03-01 72 views
0

我收到以下錯誤,當我嘗試編譯我的VS2012項目:LNK 2019解析外部符號錯誤

錯誤LNK2019:無法解析的外部符號 「市民:INT __thiscall地圖:: GetBlockRef(INT,INT)」(? GetBlockRef @圖@@在函數引用QAEHHH @ Z) 「市民:無效__thiscall地圖:: LoadLevel(INT)」(LoadLevel @圖@@ QAEXH @ Z)

錯誤LNK1120:1周無法解析的外部

我檢查了各種網站的類似問題,但找不到任何。問題是要求int map :: GetBlockRef(int,int) in void map :: LoadLevel(int)

爲什麼我不能調用GetBlockRef()?

map.h

#ifndef MAP_H 
#define MAP_H 

#include <windows.h> 
#include <vector> 
#include "Block.h" 

using namespace std; 

class map 
{ 
    public: 
     map(); 
     int GetGridCoord(int); 
     int GetBlockRef(int, int); //Declared correctly 
     void LoadLevel(int); 

     vector<block>blocks; 
     vector<int>blockRef; 
}; 

#endif 

map.cpp

#include "Map.h" 

map::map() 
{ 
    for(int i = 0; i < 196; i++) 
    { 
     blockRef.push_back(-1); 
    } 
} 

int GetGridCoord(int v) 
{ 
    return (v/48) - 1; 
} 

int GetBlockRef(int x, int y) //Defined correctly 
{ 
    x = GetGridCoord(x); 
    y = GetGridCoord(y); 

    int index = x + (14 * y); 

    return index; 
} 

void map::LoadLevel(int level) 
{ 
    int index; 
    block tmpBlock; 

    tmpBlock.InitBlockData(144, 144, "rock"); 
    index = GetBlockRef(tmpBlock.xPos, tmpBlock.yPos); //THIS IS CAUSING ERRORS!! 
    blockRef[index] = 0; 
    blocks.push_back(tmpBlock); 
} 

回答

5

//Defined correctly不是真的。

int GetBlockRef(int x, int y)int map::GetBlockRef(int x, int y)不一樣。

+0

哦哇......我完全忘了指定函數屬於哪個類x.x謝謝! –

相關問題