今天第一次寫3d遊戲中程式,只想初始化一下d3d。可是在第一步「獲取介面idirect3d9的指標」時就出現了問題。
很多人都說是引用標頭檔案出錯,但是我設定過應該沒問題。到很多群裡問,論壇發貼都沒得解。
經過一晚上思考,終於在今天零晨乙個群裡的朋友看了我傳給他的專案後找到了原因:
語句寫在了函式體外!!
請看我的源**:注意*****************部分是關鍵。
// includes ///
#define win32_lean_and_mean // just say no to mfc
#include // include important windows stuff
#include
#include
#include "iostream" // include important c/c++ stuff
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
//my include***********************************************
#include //since i can't found how to set the road,so give full road.
#include
#pragma comment(lib,"d3dx9.lib")
#pragma comment(lib,"d3d9.lib")
// defines
// defines for windows
#define window_class_name "my 3d game"
// macros /
#define keydown(vk_code) ((getasynckeystate(vk_code) & 0x8000) ? 1 : 0)
#define keyup(vk_code) ((getasynckeystate(vk_code) & 0x8000) ? 0 : 1)
_d3d9=direct3dcreate9(d3d_sdk_version); //這就是我出錯的地方啦,錯誤在哪你明白了嗎?
char buffer[80]; // general printing buffer
// functions //
lresult callback windowproc(hwnd hwnd,
uint msg,
wparam wparam,
lparam lparam)
break;
case wm_paint:
break;
case wm_destroy:
break;
default:break;
} // end switch
// process any messages that we didn't take care of
return (defwindowproc(hwnd, msg, wparam, lparam));
} // end winproc
int game_main(void *parms = null, int num_parms = 0)
// end game_main
int game_init(void *parms = null, int num_parms = 0)
// end game_init
int game_shutdown(void *parms = null, int num_parms = 0)
// end game_shutdown
// winmain
int winapi winmain( hinstance hinstance,
hinstance hprevinstance,
lpstr lpcmdline,
int ncmdshow)
// end if
// main game processing goes here
game_main();
} // end while
// closedown game here
game_shutdown();
// return to windows like this
return(msg.wparam);
} // end winmain
程式語言常見問題記錄
使用calloc函式進行動態一維陣列分配。但是不能使用memset函式進行初始化。而正規申請的定長陣列是可以使用memset函式進行置零初始化的。例如 要申請乙個p n include include intmain 使用calloc函式進行動態二維陣列分配,例如,要申請乙個p m n int ma...
虛函式預設引數的問題記錄
剛看了看專案裡的問題,對虛函式預設引數的問題有點兒遺忘,翻了翻資料 the result is i is 3 原因 為什麼c 堅持這種有違常規的做法呢?答案和執行效率有關。如果預設引數值被動態繫結,編譯器就必須想辦法為虛函式在執行時確定合適的預設值,這將比現在採用的在編譯階段確定預設值的機制更慢更複...
C 和matlab混合程式設計 問題記錄
q1 向matlab庫中傳參,引數的型別問題 answer 如果要傳的是矩陣,應該用mwarray函式定義變數mid,引數中設定矩陣大小以及元素型別,然後將該 mid傳入封裝好的庫函式的主函式中 如果傳字串,不能用string型別定義,應該用cstring,char 都可以。q2 向matlab庫中...