VS2005 배포 했을 때 실행이 안될 경우(아래와 같은 에러 메세지)

아래 링크 타고 들어가서 설치하여라.
http://www.microsoft.com/downloads/details.aspx?familyid=32bc1bee-a3f9-4c13-9c99-220b62a191ee&displaylang=en
VS2005 배포 했을 때 실행이 안될 경우(아래와 같은 에러 메세지)

앞으로 지속적으로 추가 될 Makefile 템플릿(탭으로 구분 됨)
Makefile
LIBS =
# -L./ -L./(DIR)
LIB_DIR =
# -I./ -I/(DIR)
INCLUD_DIR =
SRCS = $(OBJS:.o=.c)
CC = gcc
CPP = g++
#CFLAGS += $(INCLUDE_DIR)
#CFLAGS += -Wall -O2 -g
CPPFLAGS += $(INCLUDE_DIR)
CPPFLAGS += -Wall -O2 -g
LDFLAGS += $(LIB_DIR)
$(TARGET) : $(OBJS)
@echo "======== C++ Creating Object file >> [1;32m$<[0m << ========"
$(CPP) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) $(OBJS) -o $@ $(LIBS)
%.o:%.cpp
$(CPP) -c $(CPPFLAGS) $(CPPFLAGS) -o $@ $<
all : $(TARGET)
clean :
rm -rf *.o
rm -rf $(TARGET)
to be continue..
MakefileMakefile download
int COMPARE(char* value)
{
for(i=0; i<MAX_SYMBOL; i++)
{
if( strncmp(value, list[i], strlen(list[i])) == 0 )
break;
}
return i;
}1. CUnit 의 실행 모드
CUnit의 실행 모드에는 아래의 4가지 모드가 존재한다.
※ 익숙하지 않은 사람은 Console 모드로 진행을 추천
2. 테스트를 하기 위한 최소 단위
* CU_TestInfo 라는 구조체로 존재
* CU_TestInfo 의 구조체는 다음과 같음
typedef struct CU_TestInfo {
char *pName; /**< Test name. */
CU_TestFunc pTestFunc; /**< Test function. */
} CU_TestInfo;
3. 테스트 Suite
* CU_TestInfo가 모여서 Suite 를 구성함
typedef struct CU_SuiteInfo {
char *pName; /**< Suite name. */
CU_InitializeFunc pInitFunc; /**< Suite initialization function. */
CU_CleanupFunc pCleanupFunc; /**< Suite cleanup function */
CU_TestInfo *pTests; /**< Test case array - must be NULL terminated. */
} CU_SuiteInfo;
#include < stdio.h >
#include < stdlib.h >
#include < string.h >
#include "./include/CUnit/CUnit.h"
#include "./include/CUnit/Console.h”
CU_TestInfo test_array[] = {
{ "Test_1", test_sum1 },
{ "Test_2", test_sum2 },
{ "Test_4", test_sum3 },
{ "Test_4", test_sum4 },
CU_TEST_INFO_NULL
};
CU_SuiteInfo suites_array1[] = {
{ "Suit_1", NULL, NULL, test_array },
CU_TEST_INFO_NULL
};
CU_initialize_registry();
errorCode = CU_register_suites(suites_array1);
CU_console_run_tests();
CU_cleanup_registry();
소스
example.c
gcc -o example example.c -lcunit -L/($CUNIT_LIB)
5. 실행 화면
참고 사이트 http://blog.naver.com/yuzico?Redirect=Log&logNo=130017611239
아주 간단하게 암호화를 할 수 있다.
그것도 키를 사용해서!
비트를 쉬프트하기엔 허접하고 그것보다 약간 아주 쪼끔 덜 허접한 XOR 암호화 방법이 있다.
이름처럼 XOR 연산을 이용한 방법인데 많은 언어에서 '^' 이 모양으로 XOR 연산을 지원한다.
예를들어 아래와 같은 문서를 암호화 한다고 하자
1101 1100 0010 0101 0010 1010 1111 0111 1101 1100 0010 0101 0010 1010 1111 0111
0x4 0x5 0x4 0xE 0x4 0x3 0x4 0x5
( E ) ( N )( C )( E ) ...
/**
* @brief key : 암호화에 사용될 키
* @param keyLength : 키의 길이
* @param in : 암호화를 시킬 대상
* @param nBytes : in의 길이
* @return success or fail
*/
int XorCrypto(unsigned char* key, int keyLength, unsigned char* in, int nBytes)
{
int i = 0;
if( nBytes < keyLength ) { return -1; }
while( i < nBytes )
{
in[i] ^= key[i%keyLength];
i++;
}
return 0;
}