클리엘
CLIEL LAB
클리엘
전체 방문자
오늘
어제
  • 분류 전체보기 (514) N
    • Mobile (47)
      • Kotlin (47)
    • Web (84)
      • NestJS (9)
      • HTML5 & CSS3 (38)
      • Javascript (20)
      • TypeScript (6)
      • JQuery (11)
    • .NET (301) N
      • C# (84) N
      • ASP.NET (67)
      • Windows API for .NET (128)
    • Server (53)
      • SQL Server (10)
      • MariaDB (18)
      • Windows Server (6)
      • node.js (19)
    • System (12)
      • 작업LOG (12)
    • Review (11)
    • ETC (6)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

  • 블로그 정리

인기 글

태그

  • NestJS
  • asp.net core
  • asp.net core web api
  • node.js
  • Entity Framework
  • LINQ
  • exception
  • MariaDB
  • jQuery
  • Windows API
  • JavaScript
  • c#
  • 변수
  • android studio
  • CSS3
  • android
  • Kotlin
  • HTML5
  • .NET
  • ASP.NET

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
클리엘

CLIEL LAB

.NET/Windows API for .NET

CopyMemory - Memory 복사

2019. 8. 12. 11:24
728x90
Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (ByRef Destination As Char, ByRef Source As Char, ByVal Length As Integer)

▶VB.NET 선언

Dim a As Char = "X"
Dim B As Char

CopyMemory(B, a, 1)
B

▶VB.NET 호출

[System.Runtime.InteropServices.DllImport("kernel32.dll")]
public static extern void CopyMemory(ref char Destination, ref char Source, int Length);

▶C# 선언

char a = 'X';
char B = ' ';

CopyMemory(ref B, ref a, 1);
B

▶C# 호출


CopyMemory는 특정한 Memory영역을 복사하는 함수입니다.

CopyMemory에서 첫번째 인수는 복사할 메모리영역의 첫주소값을 전달하고 두번째 인수는 복사될 Memory Block의 첫주소값을 전달합니다. 마지막으로 세번째 인수는 복사될 Memory Block에서 얼마만큼(Byte단위)을 복사할지 지정하면 됩니다.

위 예제는 단순한 CHAR형으로 1Byte의 메모리영역을 복사하는 경우를 보여주고 있습니다. 즉 a변수에 해당하는 Memory Block에서 1Byte만큼을 B영역의 메모리 주소에 복사하는 것입니다.

CopyMemory의 첫번째와 두번째 인수의 Data형식은 복사하고자 하는 Memory Block의 Data형식에 따라 다양하게 변할 수 있으며 또한 주소값을 전달받아야 하므로 인자는 ref형식(주소값 전달형식)이 되어야 합니다.

728x90
저작자표시 비영리 변경금지 (새창열림)

'.NET > Windows API for .NET' 카테고리의 다른 글

GetActiveWindow - 현재 프로그램의 윈도우 핸들값  (0) 2019.08.12
ActivateKeyboardLayout - Keyboard 언어별 선택함수  (0) 2019.08.12
SystemParameterInfo - Windows System 환경설정  (0) 2019.08.12
SetComputerName - Computer Network 이름 바꾸기  (0) 2019.08.09
GetWindowsDirectory - 운영체제 설치경로  (0) 2019.08.09
    '.NET/Windows API for .NET' 카테고리의 다른 글
    • GetActiveWindow - 현재 프로그램의 윈도우 핸들값
    • ActivateKeyboardLayout - Keyboard 언어별 선택함수
    • SystemParameterInfo - Windows System 환경설정
    • SetComputerName - Computer Network 이름 바꾸기
    클리엘
    클리엘
    누구냐 넌?

    티스토리툴바