어베스트 백신을 사용하는 경우

처음 실행파일을 실행하는 경우라면

아래 이미지 처럼

 

어베스트 백신에 의해 잠깐동안 멜웨어(스파이웨어)를 검사하는

창이 뜨게되며 검사가 끝나면 종료 메세지가 뜨개 된다

 

그런대 시스템에 과부하가 걸리거나, 너무 오래동안 시스템을 재부팅을 하지 않은 경우라면

실행 파일을 실행하여도 이런 창이 뜨지 않고, 실행 파일에 대한 아무런 반응을 보이지 않는

경우가 발생한다. 작업관리창에서 프로세스를 제거하려도 제거도 되지 않는다

또한 파일을 삭제하려해도 삭제가 되지 않는다(프로세스에 의해 열려있는 상태라)

이러 경우 재부팅이 답이다. 이건 어쩔수 없다.

 

 

 

32bit 환경에서(xp 이상 OS들)는 정수 자료형을 integer가 아닌 long으로 선언해서 사용할것을 권한다.

lenb를 사용하면 각 자료형의 크기를 알수 있는대

integer 은 2바이트 즉 16비트

long은 4바이트 즉 32비트

 

 

오래된 툴이다 보니 요즘 OS에서는

잘 설치가 안되거나, 설치가되도 제대로 돌아가지 않는

경우가 많다.

 

그래도 안정적인 설치 방법은

ms office 2003 설치후에 vs6를 설치하니

vb나 vc가 그래도 안정적으로 돌아간다.

 

설치후에 서비스팩도 설치하고 호환성 설정하고 하면

그래도 안정적으로 돌아간다.

윈집에서 항목을 보는 방식은 여러 종류가 있는대, 리스트,자세히,썸네일 등이 있는대

자기가 보기 편한 방식으로 지정하고서는 윈집을 종료하고, 다시 윈집을 실행하게 되면

이전에 보았던 방식이 지정되지 않고 있는 항목에 따라 보는 방식이 결정되버립니다.

이전에 설정한 자신이 보는 방식을 그대로 유지 하지 못합니다.

이미지 같은 경우는 이런 방식으로 설정됩니다. 저는 이를 자세히 형식을 바꾸겠습니다.

(항목이 없는 곳에서 마우스 오른쪽 버튼을 누르면 보는 방식을 변경할수 있습니다.)

이 상태에서 윈집을 종료하고 다시 윈집을 실행하개 되면 자세히 형식으로 보던 항목들이 이전에 보았는전 방식으로 보여집니다.

 

이는 옵션 항목에 "Smart View Mode" 방식이 설정되어 있기 때문입니다.

Settings → Options → Configuration(창이 뜨면) View(탭에) → General의 "Smart View Mode" 체크 → 확인

(체크 박스를 선택 해제 하면 이전에 보았던 방식 유지할수 있습니다. 이 박스가 체크 되어 있으면 윈집이 항목에 따라 보는 방식을 결정합니다.)

 

* WinZip 16.5 Pro 기준이고, 메뉴 표시 방식에 따라 이미지와 다를수 있습니다.

다음 팟플레이어로 동영상 재생시에

작업표시줄 작업바에 동영상 플레이 진행율을 표시할수 있습니다.

환경설정(F5)⇒기본 탭⇒"작업표시줄에 조작 버튼 사용" 이 옵션에 선택하셔야 합니다.

이 옵션에는 3가시 선택이 있는대

사각형 박스에 (1)체크 않된 상태, (2)체크 표시로 체크된 상태, (3)전체 박스를 칠해진 형태로 체크한 상태

2번관 3번으로 체크하셔야 작업바에 진행율이 표시됩니다.

1번으로 하시면 진행율은 표시되지 않습니다.

 

이건 업데이트 되면서 옵션 명이 바뀌었읍니다.

 

 

 

올 겨울은 야외 활동이 많아질것 같아

전에 있던 손나로와 긴시간 동작하는 손난로가

필요하여 찾다보니

요런놈이 있더라구여

풀로 충전하고 사용하면

발열 온도는 50도가 넘고

10시간 이상을 사용할수 있다고 나오내여

위에 후라쉬가 하나 달리고

급할때

스마트폰 긴급 충전용으로 사용할수도 있습니다.

램프 3개로 충전 상태와

충전 잔량 확인이 가능합니다.

다른 손난로 제품들은

대개가 한면만 따뜻하나

이 제품은 4면이 다 따뜻합니다.

그래서 손에 딱 잡고 있으면

손 전체가 따뜻하내요

이개 장점이기도 합니다.

단점이라면

긴 시간을 발열해야 하므로 무개감이 있다는개

흠입니다. 스마트폰 무개 정도라고 생각하시면

될듯합니다.

 

'사용후기' 카테고리의 다른 글

캐시워크 퀴즈  (0) 2020.05.20

빅엔디안과 리틀엔디안은 바이트들이 어떤 식으로 저장되느냐를 나타낸다.

메모리나, 파일,네트워크 전송들 해당 바이트들을 어떤 순으로 표시하느냐

에 따라 지정된 이름이다.

 

6바이트 바이트 배열이 있다고 할때

각 바이트에는 각각 한자씩의 문자가 표시되어 있다고 하면

예로 ABCDEF가 있다고 하면

 

빅 엔디안    ABCDEF순으로 표시가 된다

리트 엔디안은 거꾸로 FEDCBA와 같이 표시된다.

 

다시 말하면

빅 엔디안 원래 바이트열에서 최상위 바이트의 값부터 최하위 바이트의 값 순으로 표시하며

리틀 엔디안은 원래 바이트열에서 최하위 바이트의 값부터 최상위 바이트의 값 순으로 표시한다

 

cpu중 인텔이나 AMD계열은 리틀 엔디안을  사용한다

네트워크 전송시에는 빅 엔디안을 사용한다.

64비트 프로그램시 사용하는 모델루

윈도우에서는 LLP64 모델을

UNIX에서는 LP64모델을 사용한다.

 

각 모델에 따라 정의되는 자료형의

차이가 있을수 있다.

'C,C++' 카테고리의 다른 글

__int64  (0) 2013.07.21
_WIN64 매크로  (0) 2013.07.21
매크로 사용시 #,## 연산자  (0) 2013.07.19
UNICODE 매크로  (0) 2013.07.19
문자셋  (0) 2013.07.18

64비트 정수형을 말한다.

 

그냥

int는 32비트 정수형

'C,C++' 카테고리의 다른 글

LLP64와 LP64는  (0) 2013.07.21
_WIN64 매크로  (0) 2013.07.21
매크로 사용시 #,## 연산자  (0) 2013.07.19
UNICODE 매크로  (0) 2013.07.19
문자셋  (0) 2013.07.18

64비트 프로그램일경우 정의되는 매크로

'C,C++' 카테고리의 다른 글

LLP64와 LP64는  (0) 2013.07.21
__int64  (0) 2013.07.21
매크로 사용시 #,## 연산자  (0) 2013.07.19
UNICODE 매크로  (0) 2013.07.19
문자셋  (0) 2013.07.18

# 연산자
• 매크로 정의에서 매개변수 앞에 샵(#)을 붙이면, 전처리기는 매크로를 호출할 때 매크로 인수에
서 C-style 스트링 상수를 생성한다.
#define printint(var) printf (# var “= %i\n”, var)

## 연산자
• 매크로 정의에서 ## 연산자는 토큰 2개를 합쳐준다. ##연산자를 매크로의 매개변수 앞에
기술하면, 전처리기는 매크로가 호출될 때 제공되는 매크로의 실제 인수와 ## 뒤에 따라
오는 토큰을 받아서, 하나의 토큰을 생성한다.
#define printx(n) printf (“%i\n”, x ## n)

'C,C++' 카테고리의 다른 글

__int64  (0) 2013.07.21
_WIN64 매크로  (0) 2013.07.21
UNICODE 매크로  (0) 2013.07.19
문자셋  (0) 2013.07.18
가변 인수  (0) 2013.07.09

프로젝트가 유니코드를 사용하게 되면 정의되는 매크로는

UNICODE, _UNICODE가 정의 되며

이 두 매크로와 전처리기를 사용하면

MBCS,WBCS 동시에 지원하는 프로그램이 가능하다.

 

#IF UNICODE

~유니코드용 코드

#ELSE

~멀티바이트 코드

#ENDIF

'C,C++' 카테고리의 다른 글

_WIN64 매크로  (0) 2013.07.21
매크로 사용시 #,## 연산자  (0) 2013.07.19
문자셋  (0) 2013.07.18
가변 인수  (0) 2013.07.09
auto와 static 변수  (0) 2013.07.01

문자셋에는 여러가지 종류가 있다.

그 문자셋을 세 분류로 나눈다.

 

SBCS : Single Byte Character Set

 1바이트 문자셋을 말하며 ASCII 코드와 같이 하나의 문자가 1바이트로 이루어진 문자셋을 말한다

 

MBCD : Multi Byte Character Set

 여러 문자가 서로 다른 바이트 수를 같는 문자셋을 말한다

 영문은 1바이트, 한글은 2바이트를 취급하는 문자셋

 

WBCS : Wide Byte character Set

  문자를 2바이트로 취급하는 문자셋을 말한다.

  UNICODE(UTF-16)는 한글이던 영문이던 모든 문자를 2바이트로 취급한다.

'C,C++' 카테고리의 다른 글

매크로 사용시 #,## 연산자  (0) 2013.07.19
UNICODE 매크로  (0) 2013.07.19
가변 인수  (0) 2013.07.09
auto와 static 변수  (0) 2013.07.01
struct 멤버 바운더리 해결  (0) 2013.06.30

printf 함수 처럼 인수가 몇개가 될지 모르는 경우 사용하는 변수를 가변인수라  한다..

가변 인수는 함수의 원형 정의시에 '...' 으로  한다

예) testvq(...) { 코드 }

 

가변 인수 사용시 가변인수 왼쪽의 인수는 정의해 줘야 한다.

예) testvq(int vqnum,...) {코드}

 

인수들은 스택에 저장된다

오른족 인수부터 왼쪽으로 차례대로 스택에 저장된다

 

따라서 가변인수 사용시 가변인수 왼쪽 인수를 명시적으로

지정하여  두지 않으면

가변인수를 참조할수 있는 방법이 없다

지정하여 두면 그 인수를 기준으로 포인터를 사용

가변인수들을 참조할수 있다.

 

가변인수를 포인터를 사용 참조할수도 있지만

더 쉬운 매크로를 사용하여 참조할수도 있다.

 

va_list 변수명; // 가변인수 참조에 사용할 변수

va_start(변수명,인수); // 변수명은 va_list로정의된 변수, 인수는 가변인수 왼쪽의 인수

변수는 인수의 형 만큼 크기의 다음 메모리를 가리키게 된다

va_arq(변수명,자료형);  //  변수명은 va_list로 정의된 변수, 자료형은

변수명의 현재 위치에서 자료형 크기 만큼의 메모리를 읽어 지정된 자료형으로 반환하며

자료형 만큼 크기의 다음 메모리를 가리키게 된다.

va_end(변수명); //변수명은 va_list로 정의된 변수로 가변인수 참조를 종료한다

'C,C++' 카테고리의 다른 글

UNICODE 매크로  (0) 2013.07.19
문자셋  (0) 2013.07.18
auto와 static 변수  (0) 2013.07.01
struct 멤버 바운더리 해결  (0) 2013.06.30
VC6에서 디버그(Debug),릴리즈(Release) 변경 실행파일 만들기  (0) 2013.03.31

일반적으로 변수 생성시 auto나 static를 생략하면 auto가 지정된 것으로 간주한다.

 

auto 변수는 stack에 생성이되며

해당 변수가 포함된 최하위 블럭이 시작될때 생성이되며

해덩 최하위 블럭이 종료될때 소멸된다.

 

static 변수는 data global 영역에 생성이되며

프로세스가 시작될때 생성이되며

프로세스가 종료될때 소멸된다.

 

heap은 동적인 메모리를 할당할때 사용되는 메모리 영역이다(malloc)

'C,C++' 카테고리의 다른 글

문자셋  (0) 2013.07.18
가변 인수  (0) 2013.07.09
struct 멤버 바운더리 해결  (0) 2013.06.30
VC6에서 디버그(Debug),릴리즈(Release) 변경 실행파일 만들기  (0) 2013.03.31
MFC와 MFC를 사용하지 않는 프로그램 차이  (0) 2013.03.16

하나의 실행파일이 기억장치에서(하드디스크,테이프,등) 메모리에 올라가면

하나의 프로세스로 작동된다.

 

프로세스는

명령어 부부과(code 또는 text라 한다)

명령어들이 사용하는 자료(data,statck,heap)

2부분으로 우선 나뉘어 메모리에 적재된다

 

이렇게 나누어지는 부분은 무작정 나누는 것이 아니라

실행파일에 이 정보가 저장되어 있다.

실행파일에 저장된 정보를 바탕으로

어느 부분은 명령어, 어느 부분은 자료로 메모리에 적재된다

 

자료 영역은 다시 세개로 나뉜다.

data

heap

stack

struct a {

  char aa;

  int    bb;

}

와 같이 정의한경우

 

메모리 구조는

char aa 1byte

사용않되는 영역 4byte

int bb 4바이트 처럼

 

struct a를 사용하개 되면 메모리에 8바이트가

사용된다 이유는

struct를 사용하는 경우 멤버들은

각 OS의 비트수에 따라

그 시작 위치를 지정한다,

이는 속도를 높이기 위한 방편이다.

 

char aa가 0x7830에 위치에 있다고 가정하면

int bb는 0x7834에 위치하게 된다.

즉 char aa와 int bb 사이 3바이는 사용되지 않지만

메모리는 할당되어 있는 상태가 된다.

 

이처럼 struct 사용시 속도를 위한 각 멤버의

메모리 위치를 지정하는 것을 막기위해서는

 

#prgma pack(1)을 선언하고 사용한다.

 

 

http://www.codeproject.com/Articles/26822/Read-Text-File-txt-csv-log-tab-fixed-length

 

'리버싱' 카테고리의 다른 글

실행파일 포맷 PE는..  (0) 2013.03.31
리버싱이란..  (0) 2013.03.30

Debug는 실행파일에 디버깅 관련 여러 데이타가 같이 추가하여 작성된다.

Release는 디버깅과는 달리 디버깅에 필요한 정보들을 실행 파일에 포함하지 않는다

 

따라서 Debug로 생성한 실행파일과, Release의 실행파일 크기를 비교해보면 Relase로

만든 실행파일 크기가 훨씬 작다.

 

vc6에서 디버그,릴르즈 모드를  변경하려면

Build 메뉴의 Set Active Configuration을 선택하면 나타나는

 

 대화상자에서 Release와 Debug를 선택함에 따라서

Debug모드 실행파일과, Release 모드 실행파일을 만들수 있다.

+ Recent posts