bvb6与c# CryptAcquireContext的行为差异解释请求



我不同意下面代码的行为,主要是因为我不熟悉VB6。我的VB声明

MS_DEF_PROV_A ="Microsoft Base Cryptographic Provider v1.0"
PROV_RSA_FULL=1
CRYPT_VERIFYCONTEXT== &HF0000000
c#声明

const string MS_DEF_PROV = "Microsoft Base Cryptographic Provider v1.0";
uint PROV_RSA_FULL = 1;
public const uint CRYPT_VERIFYCONTEXT = 0xF0000000;

现在当我运行下面的代码

CryptAcquireContext(out hProv, null, MS_DEF_PROV, PROV_RSA_FULL, CRYPT_VERIFYCONTEXT);

在这里设置断点,我看到c#中的变量

CRYPT_VERIFYCONTEXT = 4026531840

而在VB端它的值为

CRYPT_VERIFYCONTEXT = -268435456

我只是想知道为什么这种差异,它不应该是相同的值…两个值都在同一台计算机上,只是不同的ide .它可能什么都不是,但因为我不知道太多所以想了解行为的差异…

谢谢

VB6只支持有符号32位数字。对于接收数字的函数来说,比特是相同的。

最新更新