일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 백준
- Desktop
- c
- 배열
- 이지스퍼블리싱
- Tips강좌
- 프로그래밍
- 김성엽
- 알고리즘
- 지식나눔강좌
- 연산자
- VS ERROR
- c++
- Javascript
- 포인터
- 티스토리
- Win32
- Direct2D
- Programming
- 리뷰
- c#
- Windows
- doit코틀린프로그래밍
- 문법
- tipssoft
- CS
- Kotlin
- Tips프로그래밍강좌
- 함수
- Visual Studio
- Yesterday
- Today
- Total
목록winapi (4)
F.R.I.D.A.Y.
C#에서 비클라이언트의 ownerdraw를 하려면WinApi가 필수일 듯. https://docs.microsoft.com/ko-kr/windows/win32/gdi/nonclient-area 비클라이언트 영역 - Win32 apps 시스템은 제목 표시줄, 메뉴 모음 또는 창 프레임과 같은 비클라이언트 영역의 일부를 업데이트해야 할 때마다 WM\_NCPAINT 메시지를 창으로 보냅니다. docs.microsoft.com protected override void WndProc(ref Message Msg) { Rectangle rect; switch (Msg.Msg) { case WinApi.Message.WM_NCACTIVE: case WinApi.Message.WM_NCPAINT: rect = new..
C#에서 네이티브 코드인 WinAPI를 이용해 무언가를 작성하려 할 때, 꼭 주의해야 할 점이 있다. 관리되는 코드 C#은 C/C++처럼 기계어로 컴파일되는 것이 아닌 .NET 혹은 .Net Framework에서 작동하는 바이트코드, CRL(Common Runtime Language)로 변경된다. C/C++과 C#의 가장 큰 차이를 고르라면 아마도 메모리를 사용자(개발자)가 직접 관리하는가에 대한 여부일 것이다. 여태 알듯 C/C++은 개발자가 객체의 메모리 관리를 직접 해야 하는 것과 달리, C#의 경우 언어 사용자가 직접 메모리 관리를 할 필요가 없다. 내부적으로 GC(Garbage Collector)가 돌아가면서 사용되지 않는 메모리를 제거하는 방식으로 누수 메모리를 자동으로 잡는다. 이렇게 .NE..
C#에서 WinAPI로 뭔가를 하려고 했더니 보호된 메모리라고 예외를 뱉는다. 사용하려던 Windows API는 GetWindowText(HWND hWnd, LPSTR lpstring, int nMaxCount); 그래서 C# 코드는 이렇게 했었다. [DllImport("user32.dll", SetLastError = false)] public static extern int GetWindowText(IntPtr hWnd, out StringBuilder lpText, in int maxCount = 256); // ... StringBuilder windowTitle = new StringBuilder(256); wa.GetWindowText(hWnd, out windowTitle, windowTit..