jjzjj

windows - Set-ItemProperty 在某些系统上将注册表值设置为字符串而不是 DWord,为什么?

我尝试在PowerShell中使用Set-ItemProperty创建一个项目,它适用于大多数系统:New-PSDrive-nameHKCR-PSProviderRegistry-rootHKEY_CLASSES_ROOTSet-ItemProperty-PathHKCR:\Software\MyCompany\-NameLevel-Value5-ErrorActionSilentlyContinue这会在大多数Windows7系统上创建一个DWORD值,但我发现一个系统会创建一个STRING值,我想知道:为什么?系统表现不同会发生什么?所有都没有设置该值,都使用相同的Powershe

windows - DWORD_PTR、INT_PTR、LONG_PTR、UINT_PTR、ULONG_PTR 何时、如何以及为什么?

我发现Windows有一些新的WindowsDataTypesDWORD_PTR,INT_PTR,LONG_PTR,UINT_PTR,ULONG_PTR你能告诉我何时、如何以及为什么使用它们吗? 最佳答案 *_PTR类型被添加到WindowsAPI以支持Win64的64位寻址。由于32位API通常使用DWORD等数据类型传递指针,因此有必要为64位兼容性创建新类型以替代32位应用程序中的DWORD,但是在64位应用程序中使用时扩展到64位。因此,例如,想要编写32位或64位代码的应用程序开发人员将windows32位APISetWi

windows - 查找应用程序使用的 TCP 端口

好吧,我正在扩展我公司的flexlm供应商守护程序,以便向客户端应用程序显示更多信息。我需要能够在客户端连接之前找出lmgrd正在监听的端口。API文档似乎相当贫乏,我相信他们将大部分代码保存在编译后的形式中,所以我不能只查看它们的源代码。是否可以调用WindowsAPI的强大功能来找出特定进程正在使用的端口?如果Sysinternals的ProcessExplorer可以做到,我应该可以,对吧?什么是一些示例代码?它需要支持WindowsXP及更高版本,因为我们的许多客户尚未升级。我应该注意到,事实证明FLEX支持从许可证文件中提取端口。我手边没有代码,但我知道这不是找出您的供应商守

c - 在 Swift 3 中使用具有回调函数指针作为参数的 C API 函数

我正在使用Swift3为C库构建一个包装器/接口(interface)。我需要调用的函数之一需要一个用于回调的函数指针作为参数。详细说明:在所述函数成功完成它必须的文件操作后,它会调用给定参数指针所指的函数-本质上让我对所述数据进行其他操作函数如下所示:HSYNCMXDEF(Syncer)(DWORDh,DWORDt,QWORDp,SYNCPROC*proc,void*user);回调函数类型SYNCPROC定义如下:typedefvoid(CALLBACKSYNCPROC)(HSYNCh,DWORDc,DWORDd,void*user);到目前为止,我只能通过将回调参数设置为nil来

c# - 潜在的 .NET x86 JIT 问题?

以下代码在Release模式(或启用优化的调试)下构建并在没有附加VisualStudio调试器的情况下运行时表现不同。它似乎也只有在使用x86JITter时才会复制。我已经在x86机器上测试过它,并在x64机器上以WOW64运行(通过将平台目标设置为x86)。我只在.NET4.0上尝试过。当在Release中的调试器之外运行时,我看到:Valueis4当在调试器中运行时,WriteLine调用的e.Value.Length部分会抛出NullReferenceException,这正是我所期望的发生。代码:namespaceTest{classUsingReleasable{publi

c# - 潜在的 .NET x86 JIT 问题?

以下代码在Release模式(或启用优化的调试)下构建并在没有附加VisualStudio调试器的情况下运行时表现不同。它似乎也只有在使用x86JITter时才会复制。我已经在x86机器上测试过它,并在x64机器上以WOW64运行(通过将平台目标设置为x86)。我只在.NET4.0上尝试过。当在Release中的调试器之外运行时,我看到:Valueis4当在调试器中运行时,WriteLine调用的e.Value.Length部分会抛出NullReferenceException,这正是我所期望的发生。代码:namespaceTest{classUsingReleasable{publi

c# - Stackoverflow 在 C# 中进行装箱

我在C#中有这两段代码:首先classProgram{staticStackS=newStack();staticintFoo(intn){if(n==0)return0;S.Push(0);S.Push(1);...S.Push(999);returnFoo(n-1);}}第二classProgram{staticStackS=newStack();staticintFoo(intn){if(n==0)return0;S.Push(0);S.Push(1);...S.Push(999);returnFoo(n-1);}}他们都做同样的事情:创建堆栈(第一个示例在中通用,第二个示例在对

c# - Stackoverflow 在 C# 中进行装箱

我在C#中有这两段代码:首先classProgram{staticStackS=newStack();staticintFoo(intn){if(n==0)return0;S.Push(0);S.Push(1);...S.Push(999);returnFoo(n-1);}}第二classProgram{staticStackS=newStack();staticintFoo(intn){if(n==0)return0;S.Push(0);S.Push(1);...S.Push(999);returnFoo(n-1);}}他们都做同样的事情:创建堆栈(第一个示例在中通用,第二个示例在对

c++ - GCC 内联汇编 : call dword ptr

如果我在WindowsVC++中有如下代码:DWORDsomevar=0x12345678;_asmcalldwordptr[somevar]如何使用AT&T语法在GCC内联汇编中做同样的事情?__asm____volatile__("calldwordptr[%%edx]"::"d"(somevar));我试过类似的方法,但它会生成“垃圾”错误...然后我尝试将somevar传递给一些寄存器,然后将其转换为dword、ptr等,但我做不到不要让它工作。更新:我发现了一些有用的东西,好像在那种情况下我们必须使用圆括号而不是方括号,我发现了一些带有lcall的东西调用far。但我仍然不明

c++ - GCC 内联汇编 : call dword ptr

如果我在WindowsVC++中有如下代码:DWORDsomevar=0x12345678;_asmcalldwordptr[somevar]如何使用AT&T语法在GCC内联汇编中做同样的事情?__asm____volatile__("calldwordptr[%%edx]"::"d"(somevar));我试过类似的方法,但它会生成“垃圾”错误...然后我尝试将somevar传递给一些寄存器,然后将其转换为dword、ptr等,但我做不到不要让它工作。更新:我发现了一些有用的东西,好像在那种情况下我们必须使用圆括号而不是方括号,我发现了一些带有lcall的东西调用far。但我仍然不明