Windows API程式設計的問題

時間 2022-06-24 12:40:04

1樓:匿名使用者

你這個方法應該無問題。你用getlasterror看看是什麼錯誤,用formatmessage可以得到錯誤的文字提示。

用readfile的時候讀出的位元組數用sizeof(&tagmygroup)而不要用整個buffer的容量讀出來,對比實際讀取的位元組數和sizeof的位元組數確定讀取是否正確。若正確,直接將void型別的指標強制轉換(cast)成tagmygroup*型別的。

上述方法是最簡單的,但是如果檔案格式不對就會有問題,你最好在結構體中增加可以驗證該結構體的資訊,比如新增一個常量。

比較保險的方法,比如mfc的序列化carchive是儲存了資料型別的資訊的,其實他是存入的runtimeclass資訊的。兩個結構之間用了特殊的標誌位隔開,結構一開始是型別的名稱和位元組數。檔案的一開始還有個檔案的版本號。

2樓:專殺卡巴斯基

如果知道資料型別的順序,就可以根據各個資料型別的長度來讀取資料了struct a和struct b建議樓主加標誌位,定義是一樣的,不明白樓主為什麼要一個a,一個b

可以在寫入檔案時每個資料型別寫入之後加一個特殊符號,比如回車換行符鄙人拙見,希望對樓主有用

3樓:shiro儚

不懂 . 這個不適win32 的問題吧

你的例子中的2個結構體 成員一樣 資料型別一樣 佔用記憶體一樣大 明明是可以換成一個結構體

我這個檔案是由多種結構(struct)和多種內建資料型別組成的,我該如何分解這個指標物件呢?

容器你知道嗎? 容器可以存放容易資料型別 所以提取的時候即使知道什麼資料型別也要強轉一次

除非初始容器的時候給他統一型別.

這時你只需要一個結構體一個結構體讀取,你不需要知道管結構體內部資料成員好吧!!!

同意ls 的 加識別符號分隔, 還有沒用過 writefile 讀寫檔案, 貌似你後一個寫吧前面的資料覆蓋掉了 , 你讀2次所以報錯吧

4樓:

容器物件不要直接操作地址,因為裡面的資料不僅僅是你壓入的資料,還要其他控制成員。

vector 等stl類的緩衝區是內部管理可變的,你寫入檔案用地址,資料倒是可以傳入,裝入的時候你再用地址裝入不恰當。

建議,將vector的資料一項項的寫入到檔案,讀取的時候一個個的讀取插入vector。

5樓:匿名使用者

滑動滑鼠的滾輪時的訊息就是 wm_mousewheel主要要看的是 (short)hiword(wparam)的值> 0時 滾輪滾動方向向自己

< 0時 滾輪滾動方向向螢幕

(short) loword(lparam) 的值是滑鼠的橫座標(short) hiword(lparam) 的值是滑鼠的縱座標

程式設計 問題,plc 程式設計問題

結果應該等於x的取值,應為y始終是真,所以對於 x y 的值就自然取決於x的值了。先學基礎,多看書。注意書上特別說明的地方,那些地方往往會影響 的質量。會寫完整的 後,開始學習在時間和空間上優化 但是這部分知識書上是不會教你的。你要著手學習資料結構和演算法,兩者結合能大大提高程式的效率。而資料結構和...

VB程式設計問題,VB程式設計問題

dim a,b 定義兩個變體型變數a,b,在該模組範圍內有效 private sub form load 窗體載入事件觸發的函式 a picture1.width 記錄 框控制元件picture1的寬度到a變數 b picture1.height 記錄 框控制元件picture1的高度到b變數 hs...

C 程式設計問題,c語言程式設計問題

c語言程式設計問題 5 提問怎麼改。把replace函式提到main函式外面。提到main函式的前面。或者在main前面寫一個replace函式宣告宣告報告裡面呢,還寫了呼叫時的型別是衝突的。求解c 一個程式設計問題 這個程式是輸入ch,然後列印ch 1,即acsii碼錶中ch的下一個字元。因此輸入...