<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>C/C++ :: 태그 :: 모두의프린터</title><link>https://modu-print.com/tags/c/c++/</link><description/><generator>Hugo</generator><language>ko-KR</language><lastBuildDate>Fri, 16 Feb 2024 17:46:51 +0900</lastBuildDate><atom:link href="https://modu-print.com/tags/c/c++/index.xml" rel="self" type="application/rss+xml"/><item><title>Windows Shell Extention 개발관련 레지스트리</title><link>https://modu-print.com/posts/11694/</link><pubDate>Fri, 16 Feb 2024 17:46:49 +0900</pubDate><guid>https://modu-print.com/posts/11694/</guid><description>오랜만에 C/C++와 Visual Studio로 탐색기의 우클릭 메뉴에 원하는 기능을 추가할 수 있는 Shell Extention을 ATL/COM으로 만들고 있는 와중에 .. regsvr32 /u 로 DLL의 등록을 해제를 한 뒤에도 탐색기 프로세스가 개발중인 DLL을 물고 있어서 파일을 재빌드 하거나 삭제하거나 하는등의 짓을 못하는 ;; 경우가 생겨서 .. 예전기억을 더듬어 찾아둔 자료를 기록삼아 남겨 둡니다.&#10;BAT (Batchfile) HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\AlwaysUnloadDLL 이 레지스트리는 원래 윈도 NT이전의 윈도 95, 98, ME에서 탐색기로 하여금 사용하지 않는 DLL들을 좀 빨리 놔주도록 해주는 역할을 했던 것 같은데 .. 혹시 몰라 남겨둡니다. ( 2024년에 윈도 9x 관련 개발을 할일이야 있겠냐만은.. )</description></item><item><title>TightVNC 2.8.59-gpl 한영키 패치된 버전</title><link>https://modu-print.com/posts/1694/</link><pubDate>Tue, 08 Mar 2022 14:28:00 +0900</pubDate><guid>https://modu-print.com/posts/1694/</guid><description>모두의 리모트를 완전히 Go언어로 다시 만들고 기존 구조랑 전혀 다르게 수정을 하면서 기존 모두의 리모트를 1년 넘게 사용해오면서 가장 불편하게 느낀 점이 한영키가 먹지 않는다는 점입니다. 모두의 리모트에서 사용중인 TightVNC뿐 아니라 대부분의 VNC계열의 RDP 프로그램들에서 발생하는 문제이긴 한데요..&#10;TightVNC 2.8.59-gpl 버전 소스코드를 받아서 한영키 관련된 부분을 수정하고 아무래도 멀티플랫폼에 맞춰 개발된 프로그램이라 소스코드들이 UTF-8인코딩으로 되어 있어서 Visual Studio 에서 윈도용으로 컴파일시에 뜨는 이런저런 Warning 과 몇가지 define 관련 충돌나는 부분들과 함께 한영키 처리에 대한 부분을 수정하였습니다.</description></item><item><title>CreateProcess 예제</title><link>https://modu-print.com/posts/3739/</link><pubDate>Mon, 21 Jun 2021 11:53:00 +0900</pubDate><guid>https://modu-print.com/posts/3739/</guid><description>보통 다른 프로그램을 프로그래밍 적으로 실행을 하려면 ShellExcute 함수를 많이 쓰긴 합니다만.. 다른 이유로 CreateProcess 로 실행을 해야 하는 경우도 있지요 .. PID로 뭔가를 해야 한다거나 .. 등등...&#10;그런때 쓰시면 됩니다.&#10;C++ / * RunProcess / BOOL RunProcess(TCHAR* szExeName) { STARTUPINFO si; PROCESS_INFORMATION pi; ZeroMemory(&amp;si, sizeof(si)); si.cb = sizeof(si); ZeroMemory(&amp;pi, sizeof(pi)); // Start the child process. if (!CreateProcess(NULL, // No module name (use command line) szExeName, // Command line NULL, // Process handle not inheritable NULL, // Thread handle not inheritable FALSE, // Set handle inheritance to FALSE 0, // No creation flags NULL, // Use parent's environment block NULL, // Use parent's starting directory &amp;si, // Pointer to STARTUPINFO structure &amp;pi) // Pointer to PROCESS_INFORMATION structure ) { return FALSE; } // Wait until child process exits. WaitForSingleObject(pi.hProcess, INFINITE); // Close process and thread handles. CloseHandle(pi.hProcess); CloseHandle(pi.hThread); return TRUE; }</description></item></channel></rss>