關於win32與win64的相容性問題

2021-09-29 06:54:10 字數 473 閱讀 4171

源**:

(作業系統作業)printf("\nmemory attached at %x\n",(int)shm);

shm是個char*位址;

gcc編譯出現警告:lcy@lcy-lenovo-r720-15ikbn:~ $ gcc -o shmread shmread.c

shmread.c: in function 『main』:

shmread.c:31:40: warning: cast from pointer to integer of different size [-wpointer-to-int-cast]

printf("\nmemory attached at %x\n",(int)shm);

^錯誤原因:企圖將指標型別轉換為無符號32位整型數,但這在64位環境下會發生相容性問題。

解決辦法:printf("\nmemory attached at %ld\n",(long)shm);

win64下的函式呼叫方式

衝擊年薪50w,助你高階python工程師 1 在win32下,有cdecl stdcall fastcall等多種呼叫方式。在win64下,已經統一了。2 win64下,函式呼叫時,前四個引數總是通過暫存器傳遞,剩餘的壓入堆疊。前四個引數雖然不壓入堆疊,但仍然會在堆疊上保留空間,叫shadow s...

WPF與Win32互操作

一 wpf如何使用hwnd 當您建立wpf window時,wpf會建立頂級hwnd,並使用hwndsource將window及其wpf內容放入hwnd中。應用程式中其餘的wpf內容共享此單個hwnd。不過,選單 組合框下拉列表和其他彈出視窗例外。這些元素建立它們自己的頂級視窗,這正是 wpf 選單...

Win32的時間型別

在win32時間型別有這樣幾種型別filetime systemtime windowstime 先提個問題,如何計算當前時間100天以後的時間,在win32中。1.systemtime systemtime的定義是這樣 typedef struct systemtime systemtime 很大...