'프로그래밍'에 해당되는 글 15건
- 2009/01/14 [WM] Me2PocketUploader (13)
- 2009/01/09 Me2PocketUploader(PC) (16)
- 2008/12/06 동아대학교 교수협의회 홈페이지
- 2008/01/05 소프트웨어 아키텍처 과제 C# 개발
- 2008/01/05 GBar IE ToolBar ( ATL ) 개발
- 2007/12/31 정보보안 과제 S-DES 암호화 복호화 프로그램
- 2007/09/27 시스템 프로그래밍 예제 사이트 (1)
- 2007/09/26 정보보안 과제 (1)
- 2007/09/04 Lex 와 Yacc (3)
- 2007/07/24 [COM] Moniker
프로그래밍2009/01/14 20:22
프로그래밍2009/01/09 00:13
프로그래밍2008/12/06 21:04
ASP, MSSQL, CSS, Javascript 사용, Menu는 Flash
꽤 오래 전 부터 작업하였지만 진척이 없고 OSWD에서 가져온 디자인을 사용한 홈페이지 디자인을 사용하였다가 디자이너가 만들어준 PSD파일로 다시 작업 하였다.
DB도 MDB를 사용하다가 동아대학교 정보전산센터에서 SQL 서버로 바꾸길 권장해서(설정이 너무 쉬웠다는) 그냥 바꾸어 버렸다.
실제 작업기간 2주, 역시 웹 페이지는 PSD파일 자르기가 가장 오래 걸린다.
http://professor.donga.ac.kr/
프로그래밍2008/01/05 16:45
C#으로 개발한 아주 간단한!! 비디오 관리 시스템
처음 해본 C#프로그래밍, C#하다가 다시 C++을 잡으니 이거원 막노동이라는... -0-
처음 해본 C#프로그래밍, C#하다가 다시 C++을 잡으니 이거원 막노동이라는... -0-
프로그래밍2008/01/05 15:09
군대 전역후 처음으로 개발한 프로그램으로 ATL + WTL을 이용하여
익스플로러 툴바 구현 하였습니다.
프로그램을 실행하면 설치가 됨( 널소프트 인스톨러 사용 )
익스플로러를 띄워서 툴바부분에서 오른쪽 버튼으로 G메모를 활성화 시키면 됩니다.
활성화 시키면 다음과 같이 툴바가 보입니다.
메모를 원하는 사이트에서 편집을 눌러서 메모를 추가하면 됩니다.

익스플로러 툴바 구현 하였습니다.
프로그램을 실행하면 설치가 됨( 널소프트 인스톨러 사용 )
익스플로러를 띄워서 툴바부분에서 오른쪽 버튼으로 G메모를 활성화 시키면 됩니다.
그러면 화면과 같이 메모가 보입니다. 간혹 웹페이지의 스타일에 따라서 메모가 안보일 수도 있습니다.
삭제는 C:\GBar 에서 uninst.exe실행한번 이면 끝!!
실행전에 익스플로러를 모두 닫으면 한번에 모든 파일이 삭제됩니다.
GMemoBar.exe
삭제는 C:\GBar 에서 uninst.exe실행한번 이면 끝!!
실행전에 익스플로러를 모두 닫으면 한번에 모든 파일이 삭제됩니다.
GMemoBar.exe
프로그래밍2007/12/31 16:29
프로그래밍2007/09/27 16:48
프로그래밍2007/09/26 23:29
프로그래밍2007/09/04 23:22
Lex 와 Yacc 설명
http://dinosaur.compilertools.net/
http://www.therobs.com/uman/lexyacc.shtml
Flex와 Bison의 다운로드 링크만 있는데 Lex, Yacc FAQ(http://www.therobs.com/uman/faq.shtml)를 보면
Flex and Bison are essentially compatible GNU versions of Lex and Yacc. Flex also supports C++ class generation and actions.
Flex와 Bison은 Lex, Yacc의 GNU 버전과 본질적으로 호환됩니다. Flex 역시 C++ 클래스 생성과 활용도 지원합니다.
Flex와 Bison의 Win32 포팅은 Wilbur Streett 라는 사람이 해놓았습니다.
http://www.monmouth.com/~wstreett/lex-yacc/lex-yacc.html
가면 다운받을 수 있습니다.
추가로 lex, yacc 예제를 http://memphis.compilertools.net/interpreter.html 에 가면 볼 수 있습니다.
http://dinosaur.compilertools.net/
http://www.therobs.com/uman/lexyacc.shtml
Flex와 Bison의 다운로드 링크만 있는데 Lex, Yacc FAQ(http://www.therobs.com/uman/faq.shtml)를 보면
Flex and Bison are essentially compatible GNU versions of Lex and Yacc. Flex also supports C++ class generation and actions.
Flex와 Bison은 Lex, Yacc의 GNU 버전과 본질적으로 호환됩니다. Flex 역시 C++ 클래스 생성과 활용도 지원합니다.
Flex와 Bison의 Win32 포팅은 Wilbur Streett 라는 사람이 해놓았습니다.
http://www.monmouth.com/~wstreett/lex-yacc/lex-yacc.html
가면 다운받을 수 있습니다.
추가로 lex, yacc 예제를 http://memphis.compilertools.net/interpreter.html 에 가면 볼 수 있습니다.
프로그래밍2007/07/24 00:59
각 타입별 이름 짓는 규칙을 표준화된 모니커 인터페이스를 통해서 지을 수 있도록 함
시스템 모니커 종류 : 이름 짓는 객체에 대해 추가의 정보 필요
파일 모니커 : CreateFileMoniker
아이템 모니커 : CreateItemMoniker
포인터 모니커 : CreatePointerMoniker
안티 모니커 : CreateAntiMoniker
복합 모니커 : CreateGenericComposite
클래스 모니커 : CreateClassMoniker
URL 모니커 : CreateURLMoniker
OBJREF 모니커 : CreateObjrefMoniker
커스텀 모니커
IMoniker 인터페이스 구현
IBindCtx ( 바인드 컨텍스트 )
모니커 바인딩 동작에 대한 정보를 가지고 있는 객체
IMoniker::BindToObject ( 바인드 컨텍스트 정보를 인자로 넘겨줌 )
BindMoniker 헬퍼 메소드 ( 바인드 컨텍스트 정보 넘겨주지 않음 )
IMoniker::GetDisplayName 모니커의 디스플레이 이름을 리턴
IMoniker::ParseDisplayName 디스플레이 이름으로 모니커 객체를 가져옴
MkParseDisplayname 함수
원하는 타입의 모니커 객체를 가져옴
IMoniker::ParseDisplayName과 유사하나 모니커가 필요없이 모니커를 가져옴
ProgID:ObjectName 형식의 문자열을 취함 ex : "clsid:{0000-0000{00-00}}"
CoGetClassObject 함수 : 디스플레이 이름의 모니커를 변환하고 이름지어진 객체로 바인딩하는 과정을 단순화 시킴
IClassActivator 인터페이스 : 클래스 모니커의 기본 동작을 가로채서 변경할 수 있도록 해줌.
IMoniker * pClassMoniker;
CreateClassMoniker( clsid , &pClassMoniker);
//////////////////////////////////////////////////////////////
ROT ( 동작 객체 테이블 )
객체들이 스스로 등록할 수 있는 컴퓨터 단위의 테이블
모니커를 객체에 바인딩 할때, ROT를 통해서 모니커는 객체가 이미 동작중인지를 확인할 수 있다. -> 불필요하게 새로운 인스턴스 생성X
GetRunningObject 함수를 통하여 IRunningObjectTable 인터페이스 를 얻어서 ROT에 등록 하고 해제한다.
MSDN : http://msdn2.microsoft.com/en-us/library/ms688618.aspx ( IMoniker-Class Moniker Implementation )
시스템 모니커 종류 : 이름 짓는 객체에 대해 추가의 정보 필요
파일 모니커 : CreateFileMoniker
아이템 모니커 : CreateItemMoniker
포인터 모니커 : CreatePointerMoniker
안티 모니커 : CreateAntiMoniker
복합 모니커 : CreateGenericComposite
클래스 모니커 : CreateClassMoniker
URL 모니커 : CreateURLMoniker
OBJREF 모니커 : CreateObjrefMoniker
커스텀 모니커
IMoniker 인터페이스 구현
IBindCtx ( 바인드 컨텍스트 )
모니커 바인딩 동작에 대한 정보를 가지고 있는 객체
IMoniker::BindToObject ( 바인드 컨텍스트 정보를 인자로 넘겨줌 )
BindMoniker 헬퍼 메소드 ( 바인드 컨텍스트 정보 넘겨주지 않음 )
IMoniker::GetDisplayName 모니커의 디스플레이 이름을 리턴
IMoniker::ParseDisplayName 디스플레이 이름으로 모니커 객체를 가져옴
MkParseDisplayname 함수
원하는 타입의 모니커 객체를 가져옴
IMoniker::ParseDisplayName과 유사하나 모니커가 필요없이 모니커를 가져옴
ProgID:ObjectName 형식의 문자열을 취함 ex : "clsid:{0000-0000{00-00}}"
CoGetClassObject 함수 : 디스플레이 이름의 모니커를 변환하고 이름지어진 객체로 바인딩하는 과정을 단순화 시킴
IClassActivator 인터페이스 : 클래스 모니커의 기본 동작을 가로채서 변경할 수 있도록 해줌.
IMoniker * pClassMoniker;
CreateClassMoniker( clsid , &pClassMoniker);
//////////////////////////////////////////////////////////////
// 바인드 컨텍스트 시작
IBindCtx * pBindCtx;
CreateBindCtx(0, &pBindCtx);
ULONG eaten;
IMoniker * pMoniker;
OLECHAR string[] = L"clsid:00000000-0000-0000-000000000000001";
MkParseDisplayName(pBindCtx, string, &eaten, &pMoniker);
// 모니커에서 클래스 팩토리를 바인딩 한다.
IClassFactory * pClassFactory;
pMoniker->BindToObject(pBindCtx, NULL, IID_IClassFactory, (void**)&pClassFactory);
// 클래스 팩토리로 COM객체를 생성한다.
IUser * pUser;
pClassFactory->CreateInstance(&pUser);
// 무엇을 한다
pUser->Some();
// 모든 것을 헤제한다.
pClassFactory->Release();
pUser->Release();
pBindCtx->Release();
pMoniker->Release();
ROT ( 동작 객체 테이블 )
객체들이 스스로 등록할 수 있는 컴퓨터 단위의 테이블
모니커를 객체에 바인딩 할때, ROT를 통해서 모니커는 객체가 이미 동작중인지를 확인할 수 있다. -> 불필요하게 새로운 인스턴스 생성X
GetRunningObject 함수를 통하여 IRunningObjectTable 인터페이스 를 얻어서 ROT에 등록 하고 해제한다.
// ROT의 모니커이름을 뿌려줌 ////////////////////////
/////////////////////////////////////////////////////////
IRunningObjectTable * pRunningObjectTable;
GetRunningObjectTable(NULL, &pRunningObjectTable);
IEnumMoniker * pEnumMoniker;
pRunningObjectTable->EnumRunning(&pEnumMoniker);
IMoniker * pMoniker;
IBindCtx * pBindCtx;
OLECHAR * moniker_name;
// 모든 모니커에 루프를 돔
while(pEnumMoniker->Next(1, &Moniker, NULL) == S_OK)
{
CreateBindCtx(0, &pBindCtx);
pMoniker->GetDisplayName(pBindCtx, NULL, &moniker_name);
wprintf(L"DisplayName is %s\n", moniker_name);
CoTaskMemFree(moniker_name);
pMoniker->Release();
pBindCtx->Release();
}
pEnumMoniker->Release();
pRunningObjectTable->Release();
MSDN : http://msdn2.microsoft.com/en-us/library/ms688618.aspx ( IMoniker-Class Moniker Implementation )
0002.zip