'개발팁'에 해당되는 글 4건

  1. 2012.07.23 [개발팁] Adobe 감사를 피하기 위한 PDF Backup & Recovery
  2. 2012.05.25 [개발팁] 3ds Max Plugin 에서 Bone Node 걸러내기
  3. 2012.05.09 [개발팁] Visual Studio - error C2248
  4. 2011.08.23 [개발팁] Visual Studio 2008 유용한 단축키

폴더구조를 그대로 유지하면서 PDF를 백업하는 작업을 윈도우에서는 xcopy와 del을 이용해서 간단하게 할 수 있다.


pdfMover.py


pdfRecover.py


pdfRemover.py


맥에서는 이 3개의 파일을 이용해서 PDF 백업, PDF 삭제, PDF 복원을 할 수 있다.


기본적으로 Root Directory 아래의 모든 Directory를 탐색하지만, /private, /tmp, /Volumes 는 탐색범위에서 제외시켰다. 파일명에 '.pdf' 뒤에 뭔가 더 따라붙는 경우도 제외시켰다.


사용법은 다음과 같다.


sudo python pdfMover.py 백업해둘폴더


sudo python pdfRemover.py 백업해둔폴더


이까지 하면 모든 pdf 파일이 백업폴더에 트리구조를 유지하면서 복사되어있을것이다.


이 폴더를 USB에 넣어두고 감사를 무사히 마친 다음, 다시 맥에 복사하고 복원하면 끝이다.


sudo python pdfRecover.py 백업해둔폴더


sudo는 관리자 권한으로 명령어를 실행하겠다는 뜻이다. 비밀번호 물어볼 때 입력해주면 된다.

댓글을 달아 주세요

INode 하나를 파라미터로 받아 이 Node가 Bone이거나 Biped이면 True를, 아니면 False를 리턴하는 함수를 만들어보자.


BOOL isBoneOrBiped( INode* pNode )

{

Object    *obj = pNode->GetObjectRef();

Control    *pControl;

Class_ID    classID;


if( obj )

{

classID = obj->ClassID();


if( classID == BONE_OBJ_CLASSID );        // Bone Test

return TRUE;


pControl = pNode->GetTMController();


if( (pControl->ClassID() == BIPSLAVE_CONTROL_CLASS_ID) || 

    (pControl->ClassID() == BIPBODY_CONTROL_CLASS_ID) || 

    (pControl->ClassID() == FOOTPRINT_CLASS_ID) )            // Biped Test

return TRUE;

}

return FALSE;

}


참고사이트

http://www.gpgstudy.com/forum/viewtopic.php?p=30320

http://coreafive.springnote.com/pages/5675451?print=1

http://download.autodesk.com/global/docs/3dsmaxsdk2012/en_us/index.html?url=cpp_ref/idx__r_list_of_class_ids_html.html,topicNumber=cpp_ref_idx__r_list_of_class_ids_html_html


댓글을 달아 주세요

컴파일을 했을 때 다음과 같은 에러가 나는 경우가 있다.


1>c:\program files\microsoft visual studio 10.0\vc\include\fstream(890): error C2248: 'std::basic_ios<_Elem,_Traits>::basic_ios' : private 멤버('std::basic_ios<_Elem,_Traits>' 클래스에서 선언)에 액세스할 수 없습니다.

1>          with

1>          [

1>              _Elem=char,

1>              _Traits=std::char_traits<char>

1>          ]

1>          c:\program files\microsoft visual studio 10.0\vc\include\ios(176) : 'std::basic_ios<_Elem,_Traits>::basic_ios' 선언을 참조하십시오.

1>          with

1>          [

1>              _Elem=char,

1>              _Traits=std::char_traits<char>

1>          ]

1>          이 진단은 컴파일러 생성 함수 'std::basic_ifstream<_Elem,_Traits>::basic_ifstream(const std::basic_ifstream<_Elem,_Traits> &)'에서 수행되었습니다.

1>          with

1>          [

1>              _Elem=char,

1>              _Traits=std::char_traits<char>

1>          ]

자세히 보면 ifstream에 관련된 에러라는 것을 알 수 있다. 어떤 상황에서 이런 에러가 발생하는 것일까?

문제가 발생한 부분의 코드는 다음과 같다.

total = ReadNextNumber( reader );

ReadNextNumber는 다음과 같이 선언되어있다.

static int ReadNextNumber( ifstream reader )
{
char c[2];
char str[5];

memset( c, 0x00, 2 );
memset( str, 0x00, 5 );

while( c[0] != ' ' )
{
reader.read( c, 1 );
STRCAT( str, c );
}

return atoi( str );
}


ifstream 또는 ofstream 과 같은 객체는 다른 함수로 값을 넘겨줄 때 값 자체를 넘겨줘서는 안된다. 반드시 Reference 즉 변수 이름 앞에 &를 붙여서 전달해줘야 한다.

ReadNextNumber의 파라미터 ifstream reader를 ifstream &reader로 바꿔주면 에러가 사라지는 것을 확인할 수 있다.


댓글을 달아 주세요


F12
커서가 있는 위치의 함수, 변수의 정의로 이동

Ctrl + -  
F12나 찾기 등으로 커서가 움직인 경우 이전 커서 위치로 이동


vim 에서 ctags를 이용했을 때 Ctrl + ], Ctrl + T와 같은 기능이라고 보시면 됩니다. 

댓글을 달아 주세요

1 

글 보관함

카운터

Total : 28,545 / Today : 8 / Yesterday : 10
get rsstistory!