我与以下代码的行为不一致,主要是因为我不熟悉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 ..它可能不是什么,但是因为我不是知道很多,所以想了解行为的差异..
由于
答案 0 :(得分:2)
VB6仅支持带符号的32位数字。对于接收数字的函数,位是相同的。