본문 바로가기

C#.Net20

c# ADOX.Create 시 클래스가 등록되지 않았습니다 예외 해결 ADOX.Catalog catalog = new ADOX.Catalog(); string connectionString = string.Format("Provider="Microsoft.ACE.OLEDB.12.0; Data Source={0}; Jet OLEDB:Engine Type=5", fileName); catalog.Create(connectionString); // 여기서 예외. 클래스가 등록되지 않았습니다.(class not registered) 문제 원인 x64비트 윈도우에서 Microsoft Access Database Engine 2010 재배포 가능 패키지를 x86 버전으로 설치한 것이 원인이었다. Microsoft Access Database Engine 2010 64비트 버전과 32.. 2024. 4. 17.
C# Invoke를 사용해 크로스 스레드 문제를 해결하는 방법[퍼옴] 출처: https://bufferover.tistory.com/3 문제 원인 동시성이 있는 멀티 스레드 프로그램 환경에서 특정 스레드에서 생성된 Win Form 컨트롤 ( TextBox, ListView, Label, … )을 다른 스레드에서 접근할 때 발생한다. 스레드에서 안전한 방식으로 컨트롤에 접근 하려면 컨트롤을 생성한 스레드가 아닌 다른 스레드에서 윈 폼 컨트롤에 접근해야 할 때 적절한 방법으로 스레드 문제를 해결해야 한다. 해결방법 크로스 스레드 문제를 해결하는 방법은 Invoke 메소드를 사용하는 방법과 BackgroundWorker 를 사용하는 방법이 있다. Invoke 구현 컨트롤에 접근하고자 하는 스레드에서 InvokeRequired 멤버 값을 가져온다. True를 반환하면 Invoke.. 2024. 4. 2.
소켓 프로그래밍. (Socket Programming)[퍼옴] 1. 소켓(Socket) 만약 네트워크와 관련된 프로젝트를 진행하면서, 사용자(User)의 관점이 아닌, 개발자(Developer)의 관점에서 네트워크를 다뤄본 경험이 있다면, "소켓(Socket)"이라는 용어가 아주 낯설게만 느껴지는 단어는 아닐 것입니다. 하지만 이제 막 정보통신학과 전공을 배우는 학생이거나 TCP/IP 통신 프로그래밍을 한번도 접해보지 못한 개발자라면, 소켓(Socket)이란 그저 벽에 뚫린 전원 케이블 연결 구멍 정도로 생각될지도 모르겠네요. (물론, 전혀 생뚱맞은 개념 이해는 아니지만...) "소켓(Socket)"은 사전적으로 "구멍", "연결", "콘센트" 등의 의미를 가집니다. 주로 전기 부품을 규격에 따라 연결할 수 있게 만들어진 "구멍 형태의 연결부"를 일컫는 단어인데, .. 2024. 3. 21.
TCP/IP 프로토콜과 소켓 프로그래밍 개념정리[퍼옴] 출처: https://itmining.tistory.com/m/127 네트워크 프로그래밍 저희가 목표로 하는 통신 기능이 있는 C# 코드를 구현하기 전에 네트워크 프로그래밍이 무엇인지 감을 잡도록 하겠습니다. 인터넷의 유래 최초의 컴퓨터는 프로그램을 입력받고 실행한 뒤 결과를 출력하는 정도가 전부였습니다. 이 시기의 컴퓨터는 다음 그림처럼 중앙 컴퓨터에 더미 터미널 여러개를 연결했다고 합니다. 더미 터미널은 연산 능력은 없고, 입력(키보드)와 출력(모니터)만 할 수 있었습니다. 이 터미널은 지능은 없었지만 중앙 컴퓨터와 데이터를 주고 받는 기능을 가지고 있었습니다. 냉전이 한창이던 1957년 소련은 위성을 하늘에 쏘았고, 이는 미국을 자극했습니다. 자국보다 앞선 우주 기술을 가지고 있다는 것에 충격을 받.. 2024. 3. 21.