[C#] StructLayoutAttribute.Pack 필드 설명
·
Programming/C#
해당 포스팅은 MSDN의 설명을 보다 다듬은 글입니다. 원본을 참조하고 싶으면 MSDN을 참조하세요. StructLayoutAttribute.Pack 필드 (System.Runtime.InteropServices) 메모리에 있는 클래스 또는 구조체의 데이터 필드 맞춤을 제어합니다.Controls the alignment of data fields of a class or structure in memory. docs.microsoft.com 사용할 Code using System; using System.Runtime.InteropServices; [StructLayout(LayoutKind.Sequential, Pack = 0)] struct ExampleStruct { public byte b1; p..
[C++] C# 측으로 Struct 를 UDP 로 전송
·
Programming/C++
#include #include using namespace std; #pragma comment(lib, "ws2_32.lib") #define RECEIVER_IP "127.0.0.1" #define PORT 7788 #define PACKET_LENGTH 48 // don't have Marshalling, this struct not include array pointer. struct SendInfo { public: int One; int Two; double Three; double Four; double Five; double Heading; int MissionStatus; }; int main() { SendInfo sendinfo; sendinfo.One = 10; sendinfo.T..
[C#] Struct 마샬링 및 사용법
·
Programming/C#
using System.Runtime.InteropServices; namespace Test { [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)] public struct TestSet { [MarshalAs(UnmanagedType.I4)] public int EntType; [MarshalAs(UnmanagedType.I4)] public int EntityID_1; [MarshalAs(UnmanagedType.R8)] public double EntityID_2; [MarshalAs(UnmanagedType.I4)] public int EntityID_3; [MarshalAs(UnmanagedType.R8)] public doubl..
[C#] C# 에서 대괄호가 가지는 의미, (사전 정의된 속성, 특성)
·
Programming/C#
In C# what is the thing written in square brackets before a class or a function? I am familiar to C and C++. I am using C# for the first time. I trying to learn about WCF and WPF. I using a tutorial in CodeProject. There the writer has given a sample code. There he has written stackoverflow.com stackOverFlow 에 유용한 예제가 있어서 해당 답변자의 말을 한국어로 요약 해 본다. 질문자가 올린 코드이다. 인터페이스 내에 정의된 메소드 앞에 대괄호로 무언가가 쓰여 있다..
[C++] OpenCV digit_svm 예제 간단 분석
·
Programming/C++
대학생때 자연어 처리에 관해서는 상당히 깊게 생각해 본 터이라 전문가는 아니더라도 기초적인 지식에 대해서는 상당히 꿰뚫고 있으나, 이미지 처리에 관해서는 전혀 문외하기에 (대충 원리만 추측할 뿐) OpenCV 예제중 Digit_svm 이 있기에 이를 분석하는 글을 작성 해 본다. 해당 글은 전문적인 분석이 아니며, 짧은 시간을 투자한 글이므로 정확하지 않을 수 있다. 지적 댓글은 언제나 환영이다. 우선 Digit_svm 이란 Digit = 숫자, SVM = Support Vector Machine 으로서 숫자의 패턴을 통해 숫자를 판별하는 방법을 배우는 OpenCV 의 예제이다. 보통은 Python 을 통해 많이 작업하는데 이 글은 C++ 기준으로 예제에 관해 간략하게 해설한다. OpenCV 를 CMak..
[C#] async & await 을 lamdba 에서 사용시 오류
·
Programming/C#
비동기에 대한 기초적 개념을 알고 싶다면 MSDN 을 보는편이 훨신 좋을 것이다. . C#의 비동기 프로그래밍 async, await 및 Task를 사용하여 비동기 프로그래밍을 지원하는 C# 언어에 대해 간략히 설명합니다. docs.microsoft.com 비동기 실행 방식에는 Task, Thread, Async, Await 등의 문법이 존재하는데. 그 중 Async 와 await 을 lamdba 식에서 사용시 오류에 관해 간단히 설명해 보려 한다. 아래 예제에서 Task1 을 실행시키면 Run() 비동기평선이 제대로 실행되지 않고 종료 될 것이다. 초보자가 보기엔 이것이 '버그' 일 수 있으나, 엄밀히 말하면 버그는 아니다. using System; using System.Collections.Gene..
[C#] 델리게이트와 이벤트의 차이점
·
Programming/C#
해당코드는 [시작하세요! C# 6.0] 도서의 코드를 인용하였다. [끄적노트] Delegate와 Event의 이해 - 1부 [모처럼 블로그에 글을 씁니다.] 이제부터 얘기해 볼 주제는 “파리~~바게트!” ..가 아니다. 바로 C#의 ... blog.naver.com 위 포스팅을 참조하면 개념적으로 이해하는데 아주 도움이 된다. Cyp9715/tutorial_EventHandler_Vs_Delegate Contribute to Cyp9715/tutorial_EventHandler_Vs_Delegate development by creating an account on GitHub. github.com Delegate 판 코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 ..
[C#] IEnumerable 인터페이스 상속 및 객체 열거형 만들기
·
Programming/C#
해당 코드는 [시작하세요! C# 6.0] 도서 및 [MSDN]을 참조하였다. 제목이 난해하게 기재되어 있으나, foreach 가 어떻게 동작하는지 보여주는 코드와 같다. using System; using System.Collections; namespace ConsoleApp1 { class Hardware { } class USB { string name; public USB(string name) { this.name = name; } public override string ToString() { return name; } } class Notebook : Hardware, IEnumerable { private USB[] usbList = new USB[] { new USB("USB1"), ne..
[C#] 형변환 [as, is]
·
Programming/C#
C# 에서는 형변환이 C++ 과 달리 복잡하지 않고, 간결하게 떨어진다. 사전 지식 기본적으로 괄호 () 를 기반으로 한 C 스타일의 형변환을 사용할 수으며, 암시적 형변환 역시 지원한다. AS as 구문은 '.net FrameWork' 에서 오류를 발생시키는것이 상당히 큰 리소스 낭비임을 알아두면 이해가 쉽다. as 구문은 오류를 일으키지 않고도 '형 변환이 가능한지' 확인하기 위한 예약어다. as 구문으로 형 변환이 가능하다면 '지정된 타입의 인스턴스 값' 을 변환하고, 가능하지 않다면 null 을 반환하기 때문에 이를 통해서 형 변환이 성공하였는지 확인할 수 있다. AS 구문은 참조형 변수에 대해서만 사용이 가능하다, if ( a as int ) 같은 사용법은 모두 잘못되었다. (int 같은 형식이..
[C++] TCP 통신
·
Programming/C++
#include #include #include #pragma comment(lib, "ws2_32") #define PORT 28888 #define PACKET_SIZE 36 #define SERVER_IP "127.0.0.1" using std::cout; using std::endl; void server() { WSADATA wsaData; WSAStartup(MAKEWORD(2, 2), &wsaData); SOCKET hListen; hListen = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP); SOCKADDR_IN tListenAddr; tListenAddr.sin_family = AF_INET; tListenAddr.sin_port = htons(PORT);..
[C#] 인터페이스 사용 이유.
·
Programming/C#
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 32 33 34 35 36 37 38 39 using System; namespace WindowsFormsApp1 { interface ISource { int GetResult(); } class Source : ISource { public int GetResult() { return 10; } public void Test() { Target target = new Target(); } } class Target : ISource { public int GetResult() { return 20; } public void Do(ISource obj)..
[C++] 람다식 mutable 의 쓰임세.
·
Programming/C++
C++ 에서 함수를 인자로 전달하는 방법 | C++ 에서 함수를 인자로 전달하기 C++11 이전에는 다른 함수의 인자로 함수를 전달하는 방법은 함수 포인터가 유일했습니다. C언어에서 이어져온 방식이기 때문에 C개발자들에게는 크게 불편하 mynameisdabin.tistory.com 해당 포스팅을 살펴보다 람다식 에서 햇갈릴만한 내용이 있기에 짧게 정리한다.​ 우선 람다식은 다음과 같이 작성된다.​ [캡처절] (매개변수) mutable -> 반환형식 { 함수내용 } ​ 1. 캡쳐절은 외부 변수를 가져다 쓸 수 있는 공간이고,​ 2. 매개변수는 말 그대로 함수 선언시 필요한 매개 변수이다.​ 3. mutable 은 함수 내에서 외부 변수를 수정할 수 있게 해 주는 옵션이고.​ 4. 반환형식과 함수 내용은 아..