strcpy와 같은 문자열복사시, 버퍼의 크기를 모르는 경우, 버퍼 오버런이 발생할수 있어, 에러처리됨. 그러나 이렇게하면, 옛날 소스코드는 소스코드를 대거 수술해야하는 경우가 발생. 간단하게 피하는 방법. //C4996 //#define _CRT_SECURE_NO_WARNINGS (효과 없음?) //헤더파일 include 밑에 #pragma warning(disable:4996) 예) #include "pch.h" #include ... //헤더파일 include 밑에 #pragma warning(disable:4996)
strcpy 함수는 문자열을 복사하는 함수입니다. 그러나 strcpy 함수는 C 스타일의 문자열인 char 타입의 문자열만 처리할 수 있습니다. 따라서 wchar_t 타입의 문자열을 처리하기 위해서는 wcscpy 함수를 사용해야 합니다. wcscpy 함수는 wchar_t 타입의 문자열을 복사하는 함수로, 사용법은 strcpy 함수와 거의 비슷합니다. 다음은 wcscpy 함수의 사용 예시입니다. #include wchar_t source[] = L"Hello world!"; wchar_t destination[20]; wcscpy(destination, source); 위 예제에서 source 문자열은 wchar_t 타입이며, L 접두사를 사용하여 문자열을 나타내고 있습니다. destination은 wch..
다수의 통신포트를 비동기 방식으로 제어하는 C 코드를 작성하는 방법은 다양합니다. 일반적으로는 이벤트 기반(event-driven) 프로그래밍 패턴을 사용하여 각 포트의 상태 변화를 감지하고 이에 대응하는 작업을 처리합니다. 이를 위해 C 언어에서는 다음과 같은 기능들을 활용할 수 있습니다. 1) 이벤트 루프(Event Loop): 이벤트 루프는 각 포트의 상태 변화를 감지하고 이에 대응하는 작업을 처리하는 핵심 기능입니다. 이벤트 루프는 대개 무한 루프로 구성되어 있으며, 각 루프에서는 이벤트 큐(Event Queue)에 대기 중인 이벤트를 처리합니다. 2) 이벤트 핸들러(Event Handler): 이벤트 핸들러는 이벤트가 발생했을 때 호출되는 함수입니다. 이벤트 핸들러는 각 포트의 상태 변화를 감지..
C 언어에서 enum은 열거형 상수를 정의하기 위한 키워드입니다. 열거형 상수란, 일련의 연속된 정수 값에 이름을 부여하는 것입니다. 이를 이용해 가독성을 높이고, 유지보수를 쉽게 할 수 있습니다. 다음은 enum을 사용하는 예시 코드입니다. #include enum week {Mon, Tue, Wed, Thu, Fri, Sat, Sun}; int main() { enum week today; today = Wed; printf("Today is %dth day of the week\n", today+1); return 0; } 위 코드에서는 enum week라는 열거형 상수를 정의하고, 그 안에 Mon, Tue, Wed, Thu, Fri, Sat, Sun이라는 일련의 상수를 정의합니다. 그리고 main..
#include #include using namespace Gdiplus; #pragma comment (lib,"Gdiplus.lib") void strcpy(wchar_t* buf, const char* s) { int nLen = MultiByteToWideChar(CP_ACP, 0, s, -1, NULL, NULL); MultiByteToWideChar(CP_ACP, 0, s, -1, buf, nLen); } HBITMAP LoadPng(const char* file1,int *w,int *h) { wchar_t file[1024]; strcpy(file, file1); HBITMAP hb = 0; int bok = 0; Image image(file); *w = image.GetWidth();..

stm32CubeMx 클럿설정 페이지에서 아무리 클릭해도 안바뀜. RCC에서 활성화 시킴. USB comport 사용하려면 PA1핀 = High 이여야 한다고 하나, 안해도 동작되고 있음. usbd_cdc_if.c static int8_t CDC_Receive_FS(uint8_t* Buf, uint32_t *Len) { /* USER CODE BEGIN 6 */ //여기서 받아서 처리 하면 될듯.. USBD_CDC_SetRxBuffer(&hUsbDeviceFS, &Buf[0]); USBD_CDC_ReceivePacket(&hUsbDeviceFS); return (USBD_OK); /* USER CODE END 6 */ } uint8_t CDC_Transmit_FS(uint8_t* Buf, uint16_t..