본문 바로가기

CODING7

C# pInvoke Button Click (SendMessage, PostMessage) SendMessage(동기식) PostMessage(비동기식) 윈도우 핸들의 버튼을 클릭하는 명령을 수행 시 Button Down 후 Button Up에 대한 반환을 무한히 기다리는 SendMessage를 사용할 시 Button Up이 될 때까지 다음 구문이 실행되지 않는 오류를 발견, 따라서 다음과 같은 코드로 대체할 수 있다. (LeftClick_AsyncUP 참고) public static void ClickButton(IntPtr h_btn, ClickType type) { switch (type) { case ClickType.LeftClick: SendMessage(h_btn, WindowMessage.WM_LBUTTONDOWN, 0, 0); SendMessage(h_btn, WindowMes.. 2022. 12. 16.
C# .net core6.0 실행파일(exe)내 dll 파일 포함 배포 방법 publish 속성을 하기 사진과 같이 변경한다. 변경사항 : win-x64 / file publish options - [check] produce single file 2022. 11. 17.
C# XingAPI DevCenter의 C++ header 코드를 C# 코드로 변환하는 프로그램 public string hname; 형태로 변경 (최신)Property형식 +DevCenter의 각 Transition 내 Block을 우측클릭하면 Contextmenu에서 'C++ header 파일을 클립보드로 복사'라는 항목이 보인다. 클릭하면 클립보드에 typedef struct t83~~등의 이름으로 시작하는 C++ header파일을 제공해주는데, 이를 C#에서 쉽게 사용할 수 있도록 Converter 프로그램을 제작하였다. 1. c++ struct 2. c# class [사용방법] 1. 프로그램 실행 2. C++ header 파일 복사 후 메모장에 붙여넣기 3. 필요한 구문만 복사(typedef struct ~~ {} 까지) 4. 복사된 구문이 변형되어 클립보드에 생성된다. 5. 붙여넣기(ct.. 2022. 11. 17.
C# Indexer를 이용해 class 내 다수의 배열 객체에 접근하는 방법 XingAPI를 이용한다면, DevCenter 프로그램에서 C++용 헤더파일을 클립보드 형태로 구할 수 있다. 이 코드구문을 이용하여 Transition의 InBlock, OutBlock에 내용을 담아내거나 획득하도록 설계할 수 있다. 필자는 이 방식을 차용하여 OutBlock을 클래스로 생성하여 TR 요청을 통해 데이터를 획득할 때 각 TR Class의 인스턴스로 적재할 수 있도록 설계하고자 한다. 여기서 고심되었던 코드구문은 class 내의 여러 Array 객체가 존재할 때 외부 메인함수에서 class의 인스턴스에 Indexer형태로 접근하여 데이터를 적재하거나 획득하는 과정을 구현하는 것이었다. indexing 방식은 아래와 같이 Reflection을 활용한 코드로 구현하였다. using Syste.. 2022. 11. 17.
C# 구문분석(Parsing) 1. Parsing Xml, Json, Html 로부터 태그와 키워드 등을 기반으로 각 단위(token)로 구분하는 과정 2. Parser Parsing을 하는 주체자 2022. 9. 21.
C# 직렬화(Serialization) https://github.com/nocturover/CSLearning/tree/master/03_Serialize/SerializeConsoleApp GitHub - nocturover/CSLearning Contribute to nocturover/CSLearning development by creating an account on GitHub. github.com 1. C#에서는 using System.Xml.Serialization; namespace에서 직렬화를 제공한다. 2. 직렬화의 정의 https://ko.wikipedia.org/wiki/%EC%A7%81%EB%A0%AC%ED%99%94 직렬화(直列化) 또는 시리얼라이제이션(serialization)은 컴퓨터 과학의 데이터 스토리지 문.. 2022. 9. 21.
C# 동시성(async) 1. 비동기적으로 진행되는 프로세서 처리 방식에서 빠른 작업전환으로 사용자단에서 비동기방식(병렬적인 처리방식)으로 구현할 수 있습니다. 2. C#에서 제공하는 비동기는 기본적으로 System.Threading의 Thread 클래스와 Task 클래스를 주로 사용합니다. Task는 내부적으로 Thread 클래스로 구현되며, 다음과 같이 비동기 코드를 작성할 수 있습니다. #define Args using System.Threading; using System.Threading.Tasks; namespace REVIEW_CSHARP_BASIC { public partial class AsyncExample : Form { public AsyncExample() { InitializeComponent(); st.. 2022. 9. 9.