我不同意下面代码的行为,主要是因为我不熟悉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位数字。对于接收数字的函数来说,比特是相同的。