모두의 프린터는 어떠한 경우에도 회원가입, 카드결제를 요구하지 않습니다.
모두의 리모트를 완전히 Go언어로 다시 만들고 기존 구조랑 전혀 다르게 수정을 하면서 기존 모두의 리모트를 1년 넘게 사용해오면서 가장 불편하게 느낀 점이 한영키가 먹지 않는다는 점입니다. 모두의 리모트에서 사용중인 TightVNC뿐 아니라 대부분의 VNC계열의 RDP 프로그램들에서 발생하는 문제이긴 한데요.. TightVNC 2.8.59-gpl 버전 소스코드를 받아서 한영키 관련된 부분을 수정하고 아무래도 멀티플랫폼에 맞춰 개발된 프로그램이라 소스코드들이 UTF-8인코딩으로 되어 있어서 Visual Studio 에서 윈도용으로 컴파일시에 뜨는 이런저런 Warning 과 몇가지 define 관련 충돌나는 부분들과 함께 한영키 처리에 대한 부분을 수정하였습니다. 이미 한글에 대한 여러가지 부분이 적용이 되어 있음에도 정작 공식 사이트에서 배포하는 바이너리 실행파일에는 관련 부분들이 제외되어 있는점과 한글과 관련된 … 더 보기…
개발 언어관련된 부분은 아니지만 .. 이글 하나 때문에 카테고리를 추가하기도 좀 그래서 WinAPI 관련으로 보고 이 카테고리에 적어봅니다. 윈도 비스타 이후에 UAC라는 사용자 계정 컨트롤이라는 개념이 생기고 로그인 권한이나 세션권한이 고도화 되면서 발생하는 부작용? 같은거라고 보면 되겠으나 … 하여튼간에 ;; 이런식으로 파일 선택 기능에 네트워크 드라이브가 표시가 될것이라 생각하지만 .. 안보이는 경우가 생길겁니다. 아마 CFileDialog 같은 MFC 클래스를 쓰는데 네트워크 드라이브가 보인다면 아마도 사용중인 다른 프로그램에서 이미 관련 처리를 해버려서 보여지고 있을 가능성이 크구요. 우선 기본적으로는 API나 MFC에서 제공하는 기본 파일선택 창에선 네트워크 드라이브가 안보이는게 정상입니다. 윈도10 이라면 100% .. 이런 경우엔 코드 수정으로 해결되는게 아니라 … 더 보기…
일반적으로 윈서 서비스 프로그램은 일반 어플리케이션과 다른 영역에서 실행되기 때문에.. 서비스가 SheelExecute나 CreateProcess 함수등으로 실행한 프로그램들은 GUI를 포함하고 있다하더라도 화면에 표시되지 않습니다. 이러한 이유로 서비스 프로세스에서 .. GUI를 포함한 프로그램을 실행하려 하는 경우에는 .. CreateProcessAsUser 함수를 통해서 실행을 해줘야 합니다. 이떄 사용가능한 함수인데요.. 이 함수 인자가 2개인데요 szExeName, lpCommandLine 2개인데 .. 흔히들 이런 구조면 .. 실행파일명을 szExeName 에 나머지 인자를 lpCommandLine 에 넣어 쓰기 마련인데 그리 쓰시면 안됩니다. 만약 그냥 인자없이 실행하실거면 .. szExeName 에다 실행파일명만 달랑 넣으시고 lpCommandLine은 NULL을 만약 실행인자를 포함해서 실행 하실거면 szExeName 은 NULL, 실행파일과 인자까지 포함한 전체 실행명령을 lpCommandLine 에 전달하시면 … 더 보기…
MFC나 API 에서 외부 실행파일을 실행하는데 가장 많이쓰는게 ShellExcute 인데요 .. 간혹 .. 실행시킨 프로세스가 종료될때까지 대기해야 하는경우가 있습니다 그런때 사용하면 됩니다.
보통 다른 프로그램을 프로그래밍 적으로 실행을 하려면 ShellExcute 함수를 많이 쓰긴 합니다만.. 다른 이유로 CreateProcess 로 실행을 해야 하는 경우도 있지요 .. PID로 뭔가를 해야 한다거나 .. 등등… 그런때 쓰시면 됩니다. 위 코드는 실행시킨 프로세스가 종료되기 전까지 대기를 합니다.. 만약 대기 없이 실행만 시키고 함수가 리턴되길 바라시면 .. WaitForSingleObject 를 쓰지 마시고 .,. WaitForInputIdle 함수를 사용하시기 바랍니다.
가볍게 사용하기 좋은 .. Key 기반의 암호화 알고리즘인 TEA 암호화, 복호화 코드입니다.
Base64 인코딩/디코딩 입니다.. 함수 내부에서 메모리 동적 할당을 해서 처리됨으로.. 변수 사용후 반드시 해제 하셔야 합니다. 안그럼 메모리 릭 발생합니다.
Go나 자바스크립트, 파이썬등에선 개본으로 제공되는게 특정 문자를 기준으로 문자열의 내용을 분리하여 배열로 담아주는 함수들 일텐데 C/C++ 은 물론 MFC에서도 기본적으로 이러한 기능을 해주는 함수가 존재하지 않습니다. 그래서 일반적으로 위와 같은 식으로 문자열을 분리하고 CStringArray 같은 배열클래스로 처리를 해서 사용합니다.
과거 PC통신 시절 텍스트 머드가 흥하던 시절부터 널리 사용되오던 한글 조사처리 관련 코드입니다. kstbl.h 를 비롯 대부분의 내용은 당시의 관련 개발을 해오신 분들은 흔히 볼 수 있었던 코드인데 최근에 대부분 쓰는 UTF-8의 경우 오히려 조사처리가 간단한 편이라.. ㅎㅎ
윈도 관련 많은 API들이 COM 방식으로 지원을 하는데요.. MS의 관련 문서에 예제 코드부터 다양하게 제공을 하고 있습니다만. 간혹 이유를 알 수 없는 메모리 누수가 발생하여 곤란해하시는 분들이 계십니다. 우선 기본적으로 IUnknown 개체들은 전부 사용 후 Release를 호출해 주셔야 하고요. IUnknown 객체에서 Get으로 얻어온 값을 저장한 변수들도 반드시 VariantClear 함수로 비워주셔야 합니다. 컴파일러 버전에 따라서는 Release 하거나 VariantClear 된 변수라 하더라도 NULL로 초기화를 해주셔야만 레퍼런스 카운트가 감소하여 메모리 해제가 가능한 경우도 있었으니 NULL로도 초기화해주시고요. 이렇게 모든 메모리 관련 처리를 하였는데도 지속적으로 메모리 사용량이 누적되고 있다면 IUnknown 객체에서 Get으로 얻어오는 값을 저장할 변수를 _variant_t로 선언하시지 않았는지 보십시오. 만약 _variant_t로 … 더 보기…
댓글을 달려면 로그인해야 합니다.