Nim lang 中的 PTR DWORD
PTR DWORD in nim lang
这段代码有什么问题:
import winim
let CurrentProcessID = GetCurrentProcessId()
var SessionID :DWORD
let result1 = ProcessIdToSessionId(CurrentProcessID,cast [ptr DWORD](SessionID))
echo SessionID
编译命令:
nim c -d=danger -d=mingw -d=strip --passc=-flto --passl=-flto --opt=size --app=console --cpu=amd64 --out=test.exe test.nim
输出输入 Windows10:
0
但正确答案是:
1
ProcessIdToSessionId 需要一个指向要写入的变量的指针,但是您将变量 本身 的值作为指针传递,这就是它失败的原因。
正确的代码应该是这样的(未经测试):
import winim
let CurrentProcessID = GetCurrentProcessId()
var SessionID: DWORD
let result1 = ProcessIdToSessionId(CurrentProcessID, addr SessionID)
echo SessionID
这段代码有什么问题:
import winim
let CurrentProcessID = GetCurrentProcessId()
var SessionID :DWORD
let result1 = ProcessIdToSessionId(CurrentProcessID,cast [ptr DWORD](SessionID))
echo SessionID
编译命令:
nim c -d=danger -d=mingw -d=strip --passc=-flto --passl=-flto --opt=size --app=console --cpu=amd64 --out=test.exe test.nim
输出输入 Windows10:
0
但正确答案是:
1
ProcessIdToSessionId 需要一个指向要写入的变量的指针,但是您将变量 本身 的值作为指针传递,这就是它失败的原因。
正确的代码应该是这样的(未经测试):
import winim
let CurrentProcessID = GetCurrentProcessId()
var SessionID: DWORD
let result1 = ProcessIdToSessionId(CurrentProcessID, addr SessionID)
echo SessionID