개발/C# 61

C# Intel hex to bin Code

Intel Hex file 을 bin 파일로 변경해주는 코드.winform 형태로 테스트를 위해서는 button1과 saveFileDialog1만 별도 이름 변경없이 추가만 하면됨. 1. 파일을 불러온다.2. 정상적으로 불러왔으면 파일 이름이 messagebox에 뜬다.3. 확인을 누르면 bin 파일로 변경된 파일을 저장할곳을 지정한다.4. 완료. using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.IO;using System.Linq;using System.Text;using System.Threading.Tasks;using Sy..

개발/C# 2018.01.02

C#클래스 분리

아주 간단한 예제.버튼을 누르면 테스트 박스에 "테스트"란 글씨가 뜬다. 그런데. 윈도우 폼 형태의 프로젝트에서는 UI 즉 버튼이나 텍스트 박스같은 것들은 모두 private로 잡히기 때문에모든 코드를 Form1.cs에서 작성해야 한다. 나처럼 C를 오래 했던 사람들이나 소프트웨어 구조(아키텍쳐)를 배운 사람입장에서는 도무지 용납이 안된다.왜냐 유지 보수 차원에서라도 모든 코드를 Form1.cs에 때려 박으면 재사용이 일단 안된다. 어디에 무슨 코드가 있는지 코드 줄이 길게 되면 연관된것끼리 묶는다 해도 이건 아닌거다. 그래서. 간단한 예제를 만들어봤다.button1과 textbox1은 form1.Designer.cs에 만들어져 있고, form1.Designer.cs와 form1.cs는 partial로 ..

개발/C# 2017.12.26

C#에서 dll import 하기

C#에서 사용하기C++로 만든 dll은 기존의 C#의 dll을 사용하던 것 처럼 reference에 추가해서 사용하실 수 없습니다. 그래서 코드에 직접 , 사용한다고 선언해주고 사용하여야 합니다.먼저, C++을 이용해서 만든 dll을 필요한 위치에 위치 시킵니다. 저같은 경우 실행파일과 같은 위치에 위치하였습니다. (*) 그런 뒤 ,1 ) using System.Runtime.InteropServices; NameSpace를 추가한 후 2 ) [DllImport("TestLib.dll")] 를 이용하여 사용할 Dll을 명시한 후 사용할 함수를 선언합니다. (* 실행파일과 같은 위치에 있으면 dll의 이름만 쓰시면 됩니다. 아닌경우 주소까지 같이 명시) 3) 그리고 그냥 함수처럼 사용하시면 됩니다. usi..

개발/C# 2017.12.14

C# 폼간에 전역변수 사용하기

Form1와 Form2를 만들었거든요.Form1에 값을 Form2에 넘겨서 Form2에 있는 다이얼로그박스에있는 버튼을 누르면 Form1에서 넘겨준값을 뿌려주는 간단한 프로그램입니다. Form2안에 get,set 코드를 심어주면 잘 되는데.그렇게 하지않구 Data.cs라는 클래스를 하나 만들어서거기에 get_set을 넣었습니다.어떻게 호출하면 되는지요?아래와같이 작성했는데 왜 값이 Form2에 안넘어가는지 모르겠네요. /**********Form1.cs***********************/private void button1_Click(object sender, EventArgs e) { Form2 Frm2 = new Form2(); Data a = new Data(); a.Ct = "안녕하세요";..

개발/C# 2017.12.14

c# 쓰레드2

지난 시간엔 Invoke를 사용하여 오래걸리는 작업에 대한 결과를 UI 멈춤 없이 표현하는 방법을 포스트했다. 이런 기능을 통해 데이터베이스에 연결, 조회, 수정과 같은 작업이나, 네트워크 통신에 대한 연결, 송신 및 수신 작업에 대해 다른 스레드로 두고, 그 상태나 결과에 대해 UI에 표현하여, 사용자의 요청에 지체없이 응답할 수 있는 프로그램을 개발하는데 응용할 수 있다. :-)그러나 때론 UI 자체에서 큰 작업을 진행되는 경우가 있다. 가령 대용량으로 조회된 데이터를 하나의 표(Table) 컨트롤에 표현한다거나, 다량의 데이터를 차트(Chart)로 표현하는 등 표현할 데이터에 의해 수반된 Control 생성인데, 이런 처리는 데이터를 분할하여 반복문을 통해 Invoke를 반복호출하는 기교(技巧)가 ..

개발/C# 2017.12.07

c# 쓰레드

오랜 시간이 걸리는 작업에 대해선 Thread를 생성하여 처리하는 것은 어느 프로그램이나 마찬가지일 것이다. C# 기반 프로그램도 예외는 아니다. 만일 Thread 없이 만들면 어떻게 될까? Thread를 선언하지 않은 상태에서 아래와 같은 프로그램을 만들어보았다. 해당 프로그램은 입력한 수 x 만큼 2를 더하는 프로그램. 즉, x*2를 덧셈만으로 계산하는 프로그램이다. [그림 1] 입력한 수 x 만큼 2를 더하는 프로그램 다음 프로그램의 소스는 아래와 같다.using System;using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System...

개발/C# 2017.12.07