C#에서 C++ DLL 호출하는 방법
C#에서 C++ DLL을 호출해야 하는 경우
C#으로 클라이언트 애플리케이션을 개발하다 보면 종종 네이티브 C++ 라이브러리를 사용해야 하는 상황이 발생합니다. 이때 P/Invoke(Platform Invoke) 기능을 활용하면 C# 프로그램에서 C++로 작성된 DLL을 호출할 수 있습니다. 본 문서에서는 Visual Studio 2022 환경에서 C++ DLL을 생성하고 C#에서 호출하는 전체 과정을 단계별 ...
8월 3일 09:47에 게시됨
C#에서 C/C++ 동적 라이브러리 호출 시 구조체 및 배열 매핑
구조체 전달 방식
C++ 코드
extern "C" __declspec(dllexport) bool GetVersionInfo(OSINFO* info);
extern "C" __declspec(dllexport) bool GetVersionRef(OSINFO& info);
C# 구조체 정의
[StructLayout(LayoutKind.Sequential)]
public struct OSINFO
{
public int osVersion;
public int majorVersion;
public int minorVersion;
public int buildNu ...
7월 19일 16:55에 게시됨
C# 과 네이티브 C++ 로직의 통합 연동 방법론
CLR 환경에서 네이티브 코드 접근기법
C# 애플리케이션은 CLR(Common Language Runtime) 위에서 동작하지만, 기존에 구축된 고성능 C++ 라이브러리나 시스템 API 를 활용해야 할 경우가 빈번합니다. 두 언어는 메모리 관리 및 실행 모델의 근본적 차이로 인해 직접적인 상호작용이 불가능하므로, 적절한 브리지 기술이 필요합니다. 주로 사용되는 방법은 P/Invoke(Platform ...
7월 16일 23:20에 게시됨
C# Windows Mobile에서 Win32 API를 이용한 반투명 윈도우 폼 구현
Windows Mobile 환경의 .NET Compact Framework에서는 데스크톱 .NET Framework와 달리 폼의 투명도를 직접 제어할 수 있는 Opacity 속성을 기본적으로 지원하지 않습니다. 따라서 윈도우 폼을 반투명하게 만들기 위해서는 P/Invoke를 통해 coredll.dll에 존재하는 Win32 API를 직접 호출해야 합니다.
반투명 폼을 구현하기 위해 주로 사용되는 핵심 Win32 API는 다음 세 ...
6월 17일 05:58에 게시됨
Win32의 CreateFile 사용법
CreateFile 함수에 대한 상세 설명 (WinAPI)
CreateFile은 Windows 시스템에서 파일, 장치, 직렬 포트, 파이프, 드라이버 장치 등의 개체를 열 때 사용되는 핵심 함수입니다. 다음은 이 함수의 프로토타입입니다:
HANDLE CreateFile(
LPCSTR lpFileName,
DWORD dwDesiredAccess,
DWORD dwShareMode,
LPSECURITY_AT ...
5월 27일 20:03에 게시됨