본문 바로가기

IT/Tips

Visual Studio 프로그램 배포/재배포 방법 내가 작성한 프로그램은 아무데서나 쉽게 실행이 안된다. 다른곳에서도 실행하게 만드는 방법을 설명하겠다. ** Microsoft Visual C++ 2010 기준 ** 1. Microsoft Visual C++ 2010 재배포 가능 패키지(x86) 를 설치한다. 2. 정적 컴파일을 한다. (용량은 좀 늘어남) 솔루션 탐색기에서 프로젝트를 선택 한뒤, '프로젝트 - 속성 - 구성 속성 - 일반'의 'MFC 사용'을 '정적 라이브러리에서 MFC사용' 로 바꾸고 컴파일을 한다. 또는 동적링크를 정적링크로 수정 프로젝트속성:구성속성:C/C++:코드생성:런타임라이브러리 활성 (Debug) : 다중 스레드 디버그 DLL(/MDd) => 다중 스레드 디버그 (/MTd)활성 (Release) : 다중 스레드 DLL (/.. 더보기
자바(java)와 c언어의 차이점 넋두리 그냥 c언어 쓰다가 자바를 쓰다보니 느낀 불편한점 적음 c언어는 자바(java)에 비해 굉장히 자유롭다. 자바가 짜증나는 이유가 있다면 형변환은 엄격히 제한하면서 형변환에 사용되는 유연한 함수가 별로없고 찾기도 어렵다(있겠지만 귀찮다, c언어는 바로 raw data로 처리가 가능한데) 객체 지향 언어라 데이터 변환에 굉장히 엄격하고, 내부 실제 데이터에 접근히기도 어렵다 그리고 일일이 레퍼런스도 찾아봐야한다. 예를들어 RSA 암호화를 구현한다고 해보자. 문자열 "abcde..."라는 평문이 있으면 암호화를 하기위해 이를 "abcde.."를 아스키 코드(숫자)로 변환하고 BigInteger에 넣어야 하는데 이 BigInteger는 String으로만 생성자를 받는다 BigInteger는 int로 생성자를 받.. 더보기
유니코드(Unicode) 값을 UTF로 변환하기 /* written by kaspy (kaspyx@gmail.com)*/ ASCII 코드 테이블은 찾기 쉬운편인데 유니코드(Unicode) 테이블은 범위도 크고 찾기도 어려운것같다. 유니코드는 UCS-2와 UCS-4가 있는데 각각 2바이트 4바이트 크기를 가진다. 세계 모든 언어에 대한 문자를 저장하고 있고 찾아볼수있다. 바로 이 사이트이다 => http://unicode-table.com/en/ 유니코드 변환을 해보자 사이트에 접속해서 검색창에 원하는 문자에대한 유니코드(Unicode) 인코딩 값을 얻을수있다. 예를들어 "닭" 이라는 문자에 대한 유니코드 인코딩 값을 찾아보겠다. 한글 "닭"에 대한 유니코드에 값은 U+B2ED이다.그냥 십육진수로 0xB2ED 라고 보면된다. 더불어서 HTML 코드 정보.. 더보기
VMware에서 고정 아이피 설정하는법 /* written by kaspy (kaspyx@gmail.com)*/ VMware란 하나의 물리적인 컴퓨터 안에 여러개의 운영체제를 설치하여 하나의 컴퓨터 안에 여러개의 컴퓨터를 사용하는 것같은 효과를 볼수 있는 프로그램이다. 활용을 극대화 하는 방법중 하나는 아래 그림처럼 VMware안에 여러대의 서버를 설치하여 운영하는 방법이다. 그것도 고정아이피로... 물론 포트 포워딩을 하면 되긴하지만... 기능이 많아질수록 여러가지 제약이 따른다. 이론적으로 하나의 이더넷 카드는 MAC주소로 통신을 하기 때문에 여러개의 아이피 할당이 가능하다. 고로 고정아이피가 여러개라면 VMware 안에 운영체제 이미지를 만들어놓고 하나의 VMware 컴퓨터 안에 여러대의 서버가 작동하는 것처럼 할수 있다. 설정하는 방법.. 더보기
티스토리에서 소스코드 블로깅하기 /* written by kaspy (kaspyx@gmail.com)*/ 프로그래밍 관련 블로그를 하는것은 어려운것 같습니다.ㅡㅡ;; 특히 소스코드를 올려야하는 상황이 많은데, 이럴땐 블로깅할 소스코드를 이쁘게 꾸며주는 사이트에 올려놓고 그것을 복사해서 사용하면 보기에도 좋고, 시간도 절약됩니다. 제가 추천하는 사이트입니다. http://pastebin.com/ (회원가입없이 익명으로도 올릴수있습니다.) 위의 사이트에 접속해서 내가 원하는 소스코드를 올리고, 소스코드언어를 선택해서 Submit을 하면 됩니다. 빨강색 버튼왼쪽은 번호를 넣고, 오른쪽은 번호를 생략합니다. 아래는 소스코드를 복사해서 붙여넣기 했을 때 결과입니다. * 소스코드 라인 포함 #include void ex(char *pname){ .. 더보기
DLL 배포할때 재정의 오류관련.. C Standard를 기준으로 설명하였다. DLL을 컴파일 할때 소스코드가 길어지고 CPP파일이 많아지고 헤더파일이 많아지면 재정의 오류가 생길수 있다. 이상하게 헤더 중복 방직 매크로(#pragma once)를 달아놔도 컴파일을 할때 재정의 오류가 나는데 오류메시지는 보통 아래와 같다. =============================================================================================c:\program files (x86)\microsoft sdks\windows\v7.0a\include\winsock2.h(1815): error C2375: 'listen' : 재정의. 링크가 다릅니다.c:\program files (x86)\micr.. 더보기
C/C++ MFC 프로그램 배포관련 오류들에 대해서... 자신이 개발한 프로그램이 다른 컴퓨터에서도 실행하려면 배포관련 컴파일을 해야하는데 대표적으로 Visual Stduio 2010 프로젝트 속성 -> 정적 라이브러리에서 MFC사용 옵션을 하고 컴파일 했을때 나는 오류인데 메시지는 보통 아래와 같다.error LNK2001: __imp__wsprintfA 외부 기호를 확인할 수 없습니다.error LNK2001: __imp__wsprintfA 외부 기호를 확인할 수 없습니다.error LNK2019: __imp__wvsprintfA@12 외부 기호(참조 위치: "void __cdecl DbgPrintf(char *,...)" (?DbgPrintf@@YAXPADZZ) 함수)에서 확인하지 못했습니다.error LNK2019: __imp__MessageBoxA@1.. 더보기