반응형
Visual Studio 2019에서 MySQL/MariaDB C API 예제 사용하기
프로그래밍 노트/C&C++2021. 2. 8. 22:08Visual Studio 2019에서 MySQL/MariaDB C API 예제 사용하기

Visual Studio 2019에서 MySQL/MariaDB C API를 사용하는 간단한 예제를 테스트해보았습니다. 2021. 02. 08 최초작성 아래 링크에 접속하여 MariaDB Connector/C를 다운로드합니다. Oracle에서 다운로드 받으면 로그인해야 하고 번거로워서 이곳에서 다운로드 받아 사용했습니다. https://mariadb.com/downloads/#connectors OS 항목을 MS Windows (64-bit)로 변경한 후, Download를 클릭합니다. 설치하면 아래 경로에 설치됩니다. C:\Program Files\MariaDB\MariaDB Connector C 64-bit 테스트를 위해 콘솔 프로젝트를 생성했습니다. Create a new project를 선택합니다...

프로그래밍 노트/C&C++2021. 1. 28. 21:42pthread 람다(lambda) 예제

pthread의 pthread_create 함수에서 람다(lambda)를 사용한 예제입니다.람다를 사용하면 따로 함수를 선언하지 않고 코드 내에 람다를 정의한 후, pthread_create에서 바로 사용할 수 있습니다.주의할 점은 람다 함수에서 지역변수만 접근 가능합니다. 윈도우의 경우 pthread를 Visual Studio에서 사용하려면 다음 포스트를 참고하세요. Visual Studio 2019에서 pthread 사용하는 방법https://webnautes.tistory.com/1452 2021. 01. 16 최초작성2021. 01. 28 최종작성 = 는 값 전달이고 &는 참조 전달이라고 하는데 테스트해본 결과는 좀 다른 듯합니다. =를 사용하면 지정한 변수만 값을 변경할 수 있고 &를 사용하면 ..

프로그래밍 노트/C&C++2021. 1. 24. 14:15C++ 예제 - INI 파일 생성하여 읽고 쓰기

INI 파일 라이브러리(Leksys' INI Parser https://github.com/Lek-sys/LeksysINI )를 사용하여 INI 파일을 생성하고 값을 읽고 쓰는 예제입니다. 깃허브에서 iniparser.hpp 파일만 가져오면 예제를 동작시킬 수 있습니다. 2021. 01. 24 최초작성 #include #include #include #include "iniparser.hpp" std::string get_current_path() { wchar_t path[MAX_PATH] = { 0 }; GetModuleFileName(NULL, path, MAX_PATH); USES_CONVERSION; std::string str = W2A(path); str = str.substr(0, str...

프로그래밍 노트/C&C++2021. 1. 22. 22:53C/C++ - 실행 파일의 절대 경로 얻는 방법 ( realpath, GetModuleFileName )

linux에서는 realpath 함수, windows 에서는 GetModuleFileName 함수를 사용하여 실행파일의 절대 경로를 얻습니다. 2020. 12. 17 최초작성2020. 01. 22 윈도우 예제코드 버그 수정. 한글 이름 디렉토리인 경우 문제가 있었음. Linux #include /* PATH_MAX = 4096 */ #include #include int main(void) { char buf[PATH_MAX]; char *res = realpath(".", buf); if (res) { printf("%s\n", buf); } else { perror("realpath"); exit(1); } return 0; } Windows #include #include #include int m..

프로그래밍 노트/C&C++2021. 1. 14. 22:56C++ 예제 - 파일의 전체 경로 얻기(GetFullPathName, realpath)

현재 폴더에 있는 지정한 파일의 전체 경로(절대 경로)를 얻는 예제입니다. 2021. 1. 14 최초작성 아래 링크에서 발견한 코드를 MinGW로 테스트하니 문제 없었지만. https://stackoverflow.com/a/17632322 #include #include int main() { char path[] = "get_filepath.cpp"; char *filename; char fullpath[256]; GetFullPathName(path, 256, fullpath, &filename); // linux realpath printf("Full path: %s\nFilename: %s\n", fullpath, filename); return 0; } Visual Studio 2019에서 실행..

프로그래밍 노트/C&C++2021. 1. 12. 22:56C++ 예제 - 문자열을 일정 길이로 자르기

문자열을 일정 길이로 자르는 C++ 코드를 작성해보았습니다. 2021. 1. 12 - 최초작성 #include #include #include std::vector block_string(std::string input, int want_block_length) { std::vector ret; int length; std::string str = input; while (str.length() > want_block_length) { std::string msg = str.substr(0, want_block_length); std::string rest = str.substr(want_block_length); // std::cout

프로그래밍 노트/C&C++2021. 1. 8. 22:14iconv를 사용한 한글 인코딩 변환 C언어 예제 - utf8 <-> cp949

utf8과 cp949(euc-kr)간에 한글 인코딩 변환을 해본 예제입니다. 2020. 01. 08 - 최초작성 Ubuntu에서 테스트를 진행하여 입력이 UTF8 입니다.cp949로 변환했다가 다시 UTF8로 변환하여 정상으로 보이는 것을 확인했습니다. C언어로 작성하니 malloc로 메모리 할당받았던 것을 free로 해제해줘야 하는 번거로움이 있네요. C++에서 한다면 string 타입의 변수로 대입한 후, 바로 메모리를 해제해줘도 됩니다. #include #include #include #include char * encoding(char *text_input, char *source, char *target) { iconv_t it; int input_len = strlen(text_input) +..

프로그래밍 노트/C&C++2021. 1. 4. 23:58Visual Studio 2019에서 pthread 사용하는 방법

Visual Studio 2019에서 pthread 사용하는 방법을 다룹니다. 2021. 1. 4 최초작성 1. 아래 링크에서 pthreads-w32-2-9-1-release.zip를 다운로드 합니다. http://sourceware.org/pub/pthreads-win32/ 2. 압축을 풀어서 Pre-built.2 폴더 이름을 pthread로 바꾼 후, C:\에 복사합니다. 3. 새 프로젝트 만들기를 클릭합니다. 4. Windows 데스크톱 마법사를 클릭하고 다음 버튼을 클릭합니다. 5. 프로젝트 이름을 적은 후, 만들기를 클릭합니다. 6. 애플리케이션 종류로 콘솔 애플리케이션을 선택한 후, 추가 옵션에서 빈 프로젝트를 체크한 후, 확인 버튼을 클릭합니다. 7. 소스파일을 선택하고 마우스 우클릭하여 메..

프로그래밍 노트/C&C++2021. 1. 1. 19:18C++ shared_ptr 예제, 사용방법

C++의 shared_ptr 예제 및 사용방법을 다루고 있습니다. 아직 C++에 익숙하지 못해서 제 맘대로 바꿔보면서 감을 익히는 중입니다. 2020. 01. 01. 최초 작성 std::shared_ptr 이란 shared_ptr은 c++ 11이 제공하는 스마트 포인터 클래스 중 하나입니다. 포인터를 더 이상 사용하지 않는 경우 메모리를 자동으로 해제해줍니다. 잘 사용하면 메모리 해제를 제때 안해 발생하는 메모리 릭(memory leak) 문제를 방지할 수 있습니다. shared_ptr 객체 생성 shared_ptr 객체 생성시 바로 메모리를 가리키는 포인터를 연결하는 방법은 아래 예제에 보이는 2가지가 있습니다. make_shared를 사용하는 것을 권장합니다. shared_ptr을 위한 힙 메모리에 ..

프로그래밍 노트/C&C++2020. 12. 11. 22:31C++ localtime 사용하여 현재 날짜, 시간 출력하기 (Windows/Linux)

C++에서 현재 날짜, 시간을 출력하는 예제입니다. 2020. 12. 11 최초작성 최근 Visual Studio 2019를 업데이트한 후, 콘솔 프로젝트 만들시 sprintf_s 대신에 sprintf 사용해도 에러나지 않도록 하는 옵션 체크해제 항목이 사라졌네요. 그래서 Visual Studio에서 테스트할 경우 _MSC_VER이 정의되어 있어서 sprintf_s를 사용하도록 했습니다. 윈도우에서는 _localtime64_s를 사용하도록 했는데 리눅스에서 사용하는 localtime_r과 달리 thread safe한지 확인을 아직 못했습니다. C++에서 현재 날짜, 시간을 출력하는 예제입니다. 2020. 12. 11 최초작성 최근 Visual Studio 2019를 업데이트한 후, 콘솔 프로젝트 만들시 ..

반응형
image