NumPut
지정된 주소 + 오프셋에 이진 형식으로 숫자를 저장합니다.
NumPut(Number, VarOrAddress [, Offset = 0][, Type = "UPtr"])
매개변수
- Number
저장할 숫자.
- VarOrAddress
-
메모리 주소 또는 변수. VarOrAddress가
MyVar
와 같은 변수이면, 변수의 문자열 버퍼의 주소가 사용됩니다. 이것은 보통&MyVar
를 건네는 것과 동등하지만, "&"를 생략하면 수행성능이 향상되고 목표 주소 + 오프셋이 유효하다고 확신할 수 있습니다.변수에 목표 주소가 들어 있다면 변수 참조를 건네지 마십시오; 그럴 경우,
MyVar+0
와 같은 표현식을 건네십시오. - Offset
목표 주소를 결정하기 위해 VarOrAddress에 더해지는 - 바이트 단위 - 오프셋.
- Type
-
다음 문자열 중 하나 (생략하면 UPtr이 기본값):
UInt, Int, Int64, Short, UShort, Char, UChar, Double, Float, Ptr or UPtrDllCall과 다르게, 이것들은 기호 문자열로 사용될 때 반드시 따옴표로 둘러야 합니다.
자세한 것은 DllCall Types를 참조하십시오.
반환 값
목표 주소가 유효하지 않으면, 빈 문자열이 반환됩니다. 그렇지만, 어떤 무효한 주소는 그대로 탐지할 수 없으므로, 예상치 못한 행위를 야기할 수 있습니다.
그렇지 않으면, 방금 씌여진 항목의 오른쪽 주소가 반환됩니다. 이것은 예를 들어 DllCall에 사용할 구조체에서 다른 유형의 숫자를 연속적으로 쓸 때 보통 사용됩니다.
총평
정수가 너무 커서 지정된 Type에 맞지 않으면, 제일 중요한 비트(MSB)가 무시됩니다; 예, NumPut(257, var, 0, "Char")
는 숫자 1을 저장합니다.
매개변수가 세 개만 있으면, 세 번째 매개변수는 Offset 또는 Type이 될 수 있습니다. 예를 들어, NumPut(x, var, "int")
는 유효합니다.