NumPut()

지정된 주소-오프셋에 이진 형식으로 숫자를 저장합니다.

NumPut(Number, VarOrAddress , Offset := 0, Type := "UPtr")

매개변수

Number

저장할 숫자.

VarOrAddress

메모리 주소 또는 변수. VarOrAddressMyVar 같은 변수 이면, 그 변수의 문자열 버퍼의 주소가 사용됩니다. 이것은 보통 &MyVar를 건네는 것과 동등하지만, "&"를 생략하면 더 수행성능이 좋고 목표 주소 + 오프셋이 유효하다는 확신을 할 수 있습니다.

변수에 목표 주소가 담겨 있으면 변수 참조를 건네지 마십시오; 그 경우, MyVar+0와 같은 표현식을 건네십시오.

Offset

상대거리(오프셋) - 바이트 단위 - VarOrAddress에 더해져서 목표 주소를 결정합니다.

Type

비어 있거나 생략하면, 기본값은 UPtr입니다. Otherwise, specify UInt, UInt64, Int, Int64, Short, UShort, Char, UChar, Double, Float, Ptr or UPtr.

UInt64 is supported in [v1.0.48+] by allowing large unsigned values to be passed as strings. In earlier versions and for all other integer types, or when passing pure integers, signed vs. unsigned does not affect the result due to the use of two's complement to represent signed integers.

DllCall()와 다르게, 이것들은 문자 그대로의 문자열로 사용될 때 반드시 따옴표로 둘러 싸야 합니다.

자세한 것은 DllCall 유형을 참조하십시오.

반환 값

목표 주소가 유효하지 않으면, 빈 문자열이 돌아옵니다. 그렇지만, 어떤 무효 주소는 그런 식으로 탐지할 수 없습니다. 그래서 예상치 못한 행위를 야기할 수 있습니다.

그렇지 않으면, 방금 씌여진 항목의 오른쪽 주소가 반환됩니다. 이것은 예를 들어 DllCall()에 사용할 구조체에서 다른 유형의 숫자를 연속적으로 쓸 때 보통 사용됩니다.

총평

정수가 너무 커서 지정된 Type에 맞지 않으면, 제일 중요한 비트(MSB)가 무시됩니다; 예, NumPut(257, var, 0, "Char")는 숫자 1을 저장합니다.

세 개의 매개변수만 존재하면, 세 번째 매개변수는 Offset 또는 Type일 수 있습니다. 예를 들어, NumPut(x, var, "int")는 유효합니다.

NumGet(), DllCall(), VarSetCapacity()