xsocks 64位平台下編譯問題小記

2021-09-07 07:18:15 字數 514 閱讀 8165

1、src/common/public.h

uint32_t lpparameter 改為 void* lpparameter;

2、socksmgr.cpp

dword winapi csocksmgr::forwardproc(void*lpparameter) 

編譯不過去。因為在 64位平台下,void*向 int轉換會丟失精度。

dword winapi csocksmgr::forwardproc(void*lpparameter)

作者在這裡做強制轉換的原因是:傳遞的引數  lpparameter,最原始由執行緒建立時當引數傳入,受介面限制,只能傳入指標型別。實際這個引數是乙個socket控制代碼。是個 int。

還有個將 this指標強制轉換為 uint32_t的。

bool csocksmgr::begin( lpcstr ip, int

port )

GDAL編譯Windows平台下64位的方式

最近寫的專案需要在64位的伺服器上,結果32位下編譯的不能用,只好重新編譯一套64位的。在編譯gdal時,出現了連線錯誤,如下 link error lnk2001 unresolved external symbol octnewcoordinatetransformation at 8 link...

Linux 32和64位平台下支援LFS

在linux x86 32位 系統上編譯的程式放到linux x86 64 64位 系統上執行的時候出現呼叫lstat或lstat函式的錯誤,返回的錯誤碼值為75,錯誤描述為 value too large for defined data type 為了讓程式能夠使用lfs 大檔案系統 你可以選擇...

Win10平台下編譯ffmpeg4 0 2

我們知道windows平台下生成dll動態庫檔案有兩種方式,一種是在原始碼中增加巨集 declspec dllexport 和 declspec dllimport 另一種方式是怎加模組定義檔案 def,而ffmpeg原始碼中並沒有怎加 declspec dllexport 和 declspec d...