MFC プロジェクトで 16 進文字列から整数への変換を試みています。コードは次のようになります。
CString sMask = "0xFFFFFFE0";
char* pMaskBuffer = sMask.GetBuffer(sMask.GetLength());
sMask.ReleaseBuffer();
char * p = NULL;
long iMask = strtol(pMaskBuffer, &p, 16);
sMask 変数が小さい場合、コードは正常に機能していましたが、4 バイトのマスクが奇妙な値を生成しています。4294967264 の代わりに、2147483647 を取得しています。これを克服する方法。助けてください。