程式設計問題記錄 語句寫在函式外

2021-04-24 17:33:25 字數 2330 閱讀 7076

今天第一次寫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庫中...