Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
bw VB6和C#CryptAcquireContext的行为差异解释请求_C#_Vb6 - Fatal编程技术网

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

bw VB6和C#CryptAcquireContext的行为差异解释请求,c#,vb6,C#,Vb6,我不同意下面代码的行为,主要是因为我不太熟悉VB6。我的VB声明 MS_DEF_PROV_A ="Microsoft Base Cryptographic Provider v1.0" PROV_RSA_FULL=1 CRYPT_VERIFYCONTEXT== &HF0000000 const string MS_DEF_PROV = "Microsoft Base Cryptographic Provider v1.0"; uint PROV_RSA_FULL = 1; public

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

MS_DEF_PROV_A ="Microsoft Base Cryptographic Provider v1.0"
PROV_RSA_FULL=1
CRYPT_VERIFYCONTEXT== &HF0000000
const string MS_DEF_PROV = "Microsoft Base Cryptographic Provider v1.0";
uint PROV_RSA_FULL = 1;
public const uint CRYPT_VERIFYCONTEXT = 0xF0000000;
C#声明

MS_DEF_PROV_A ="Microsoft Base Cryptographic Provider v1.0"
PROV_RSA_FULL=1
CRYPT_VERIFYCONTEXT== &HF0000000
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中看到这个变量#

而在VB端,它的值为

CRYPT_VERIFYCONTEXT = -268435456
我只是想知道为什么会有这种差异,它不应该是相同的值吗?这两个值都在同一台计算机上,只是不同的IDE。可能什么都不是,但因为我知道的不多,所以我想了解行为上的差异


谢谢

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

您的CRYPT_VERIFYCONTEXT声明正在使用测试(=),因此可能根本没有声明。只需在程序员模式下使用Windows计算器将数字转换为十六进制即可。4026531840==0xF0000000,-268435456==0xF0000000。相同的数字,后一个是int而不是uint。