bw VB6和C#CryptAcquireContext的行为差异解释请求

时间:2014-07-22 00:08:06

标签: c# vb6

我与以下代码的行为不一致,主要是因为我不熟悉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 ..它可能不是什么,但是因为我不是知道很多,所以想了解行为的差异..

由于

1 个答案:

答案 0 :(得分:2)

VB6仅支持带符号的32位数字。对于接收数字的函数,位是相同的。