반응형
최근 안철수 연구소에서 진행한 컨퍼런스(2011.10.25)에 참석했었다.
내가 궁금했던것은 어느정도 규모가 있는 회사의 빌드및 버그 트래킹등 자동화 정도였다.

* 버그 트래킹 - 맨티스(http://www.mantisbt.org/)
* 빌드 서버
   -  Windows : 배치 빌드로 자동화 구현
   -  Linux : HUDSON(http://hudson-ci.org/)
 * 소스관리 - SVN(http://tortoisesvn.net/)

현재 일하고 있는 회사의 경우 버그트래킹 시스템이 없는것이 좀 아쉽다.
맨티스가 무엇인지 좀 조사를 하여 적용방안에 대하여 고려해볼 필요가 있다.


반응형

'IT > 개발방법론' 카테고리의 다른 글

PostgreSQL Windows ODBC Driver 설정 방법  (3) 2014.04.15
VS 2008 매크로 동작하지 않는 문제  (0) 2014.02.19
Google App Engine  (1) 2013.09.23
빌드시 경고 연동방법  (0) 2013.03.28
[펌]빌드자동화 관련 모음  (0) 2011.02.07
반응형

아래의 코드와 같다.
코드 빌드는 해보지 않아서 오류있을 수 있음, 하지만 방법은 이렇게하면된다.
HMODULE hMod = NULL;
typedef BOOL (WINAPI *PFN_CHANGEWINDOWMESSAGEFILTER(UINT message, DWORD dwFlag);

CHANGEWINDOWMESSAGEFILTER fnChgMsgFilter;
hMod = LoadLibrary("USER32.DLL");
if(hMod != NULL)
{
 fnChgMsgFilter=(PFN_CHANGEWINDOWMESSAGEFILTER)GetProcAddress(hMod,"ChangeWindowMessageFilter");
 if(fnChgMsgFilter != NULL)
 {
     fnChgMsgFilter (WM_xxx,1);
 }
}

반응형

IT 세미나 일정 세미나 달력

IT 2011. 3. 29. 11:39 Posted by Imtraveller
반응형
반응형

'IT' 카테고리의 다른 글

Parming 관련정보 정리  (0) 2013.02.14

About User Mode Hook

IT/후킹(HOOK) 2011. 2. 10. 19:38 Posted by Imtraveller
반응형

About Shell Extension Hook 

Creating a shell extension with C#
http://www.codeproject.com/KB/cs/dateparser.aspx

About Shell Extension Hook
http://www.codeguru.com/Cpp/COM-Tech/shell/article.php/c4515/

Working with Shell Extensions in th MSDN
http://msdn.microsoft.com/en-us/library/ff468984(v=VS.85).aspx

Win7에서 ShellExecuteHooks등록 방법 및 문제점 접근 방법 기술
http://social.msdn.microsoft.com/Forums/en/windowssecurity/thread/f61f8179-fc87-4cef-b795-10bc93bc9eee

[중요 글귀]

The IShellExecuteHook Interface Dynamic Link Libraries (DLLs), Microsoft has “turned off” this COM interface for Windows Vista™ since the older hooks crashing the Windows Vista™ Shell. The interface can be turned on by the following setting:

Computer\HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer

EnableShellExecuteHooks=1 (DWORD)

Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer

EnableShellExecuteHooks=1 (DWORD)    


What’s sad is that Microsoft isn’t offering any alternatives. However, there appears turning points, because an alternative to writing a IShellExecuteHook DLL is to hook the ShellExecute(), ShellExecuteEx() and IsUserAnAdmin()Function

반응형

[펌]빌드자동화 관련 모음

IT/개발방법론 2011. 2. 7. 09:57 Posted by Imtraveller
반응형

내가 작성한 빌드 스크립트는 아직 배포까지 처리는 불가능하여 추가적인 작업이 필요하므로
빌드 스크립트 개선 작업 진행을 위해 자료 수집중 찾은 url 추가
가능한 기능
-
빌드 자동화에 대한 자료 수집중 찾은 글..

http://www.gpgstudy.com/forum/viewtopic.php?t=7692


위의 url에 아래와 같은 샘플 코드가 있는데 이중 빌드 결과 검출방법, 검출 후 액션에 대한 내용을 참고할 예정
그리고 배포에 대한 방안도 함께

@echo off

  
: VC.NET 을 Command-Line 에서 실행하도록 Path나 기타 환경 변수 등록
call "C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\bin\vcvars32.bat"
  
: 해당 vcproj를 Clean 후 Build 를 한다.
devenv /clean release "c:\Project\tool\xxxtool\xxxtool.vcproj"
devenv /build release "c:\Project\tool\xxxtool\xxxtool.vcproj"
  
: Build 결과에 exe 파일을 검출
if not exist "C:\Project\tool\xxxtool\Release\xxxtool.exe" (
  
    : EXE가 없으면 Build 가 실패했으므로 Log 를 자동으로 열어주자.
    "C:\Program Files\Internet Explorer\iexplore.exe" "c:\Project\tool\xxxtool\Release\BuildLog.htm"
  
) else (
  
    : Build 가 성공했으니 폴더에 복사 시작
    if exist "C:\Project\xxxtool\%DATE%" (
        echo Deleting : C:\Project\xxxtool\%DATE%
        del "C:\Project\xxxtool\%DATE%\*.*" /q
    ) else (
        echo Making : C:\Project\xxxtool\%DATE%
        mkdir "C:\Project\xxxtool\%DATE%"
    )
  
    : 작업 폴더로 이동
    cd "C:\Project\xxxtool\%DATE%"
  
    : 필요한 파일들을 복사
    copy "C:\Project\xxxtool\DLL\*.dll" .
    copy "C:\Project\xxxtool\DLL\*.pdb" .
    copy "C:\Project\tool\xxxtool\*.fx" .
    copy "C:\Project\tool\xxxtool\*.bmp" .
    copy "C:\Project\tool\xxxtool\Release\xxxtool.exe" .
    copy "C:\Project\tool\xxxtool\Release\xxxtool.pdb" .
  
    : rar 로 압축
    if exist "C:\Project\xxxtool\xxxtool_%DATE%.rar" del "C:\Project\xxxtool\xxxtool_%DATE%.rar" /q
    "C:\Program Files\WinRAR\rar" a "C:\Project\xxxtool\xxxtool_%DATE%.rar" *.*
  
    : 작업 끝난 폴더를 열어준다. 나중에 여기 자동 메일링을 넣어준다. (CDO 객체를 사용한 VBScript..? PHP Script..?)
    explorer "C:\Project\xxxtool"
)
반응형

[펌]win7 send to menu

IT/주워담기 2011. 1. 27. 09:49 Posted by Imtraveller
반응형

Customize the Windows 7 or Vista Send To Menu

You’ve seen the SendTo folder in action any time you right-click a file and select the Send To folder from the context menu. What you might be unaware of is that you can customize the items in this menu.

Go ahead, right click a file. You should see something that looks like this:

To get to the SendTo folder, you’ll need to open up an Explorer window, and then paste in the following to the address bar.

%APPDATA%\Microsoft\Windows\SendTo

%APPDATA% is an environment variable that actually maps to something like C:\users\<username>\AppData\Roaming.

You should now see a bunch of shortcuts:

Let’s say you wanted to add an item to the Send To menu to open files in Notepad. You could just drag a shortcut to Notepad into this folder, or create a new shortcut. Now you can see the new Notepad item in the menu:

This method should work for any application that allows you to open a file by using a command line argument.


반응형

네트워크 드라이버 개발 관련

IT/드라이버개발 2011. 1. 5. 10:59 Posted by Imtraveller
반응형
반응형

메모리 풀 관리(ExAllocatePoolWithTag)

IT/드라이버개발 2010. 12. 29. 15:05 Posted by Imtraveller
반응형

드라이버 작업중 누수되는 NonPagedPool 메모리에 대한 확인방법.
할당한 메모리가 점점 쌓여 일정시간이 흐른후 BSOD가 발생한 경우가 발생하여 확인 작업을 진행하였다.

ExAllocatePoolWithTag()를 이용하여 할당한 NonPagedPool 메모리가 환원되었는지 확인하는 방법은 아래와 같다. 
메모리 추적은 OSR의 PoolTag를 이용하였다.


풀태그를 각각의 메모리 할당하는 종류별로 분류하여 설정하고, 그 해당 Pool Tag의 메모리 Alloc-Frees-Bytes Used를 확인한다.
Bytes Used는 메모리 해제가 정상적으로 이루어진 경우 0이 되어야 하는데, 메모리 해제 누락시에 이 사이즈가 점점 증가한다.
증가하는 해당 Tag의 메모리 해제하는 부분을 잘 살펴 보면된다.

다운로드 pool tag
http://www.osronline.com/article.cfm?article=98



반응형

[펌]msi installer custom action return value

IT/주워담기 2010. 10. 21. 09:46 Posted by Imtraveller
반응형

Custom Action Return Values

If the msidbCustomActionTypeContinue return processing option is not set, the custom action must return an integer status code as shown in the following table.

Return value Description
ERROR_FUNCTION_NOT_CALLED Action not executed.
ERROR_SUCCESS Completed actions successfully.
ERROR_INSTALL_USEREXIT User terminated prematurely.
ERROR_INSTALL_FAILURE Unrecoverable error occurred.
ERROR_NO_MORE_ITEMS Skip remaining actions, not an error.

 

Note that custom actions that are executable files must return a value of 0 for success. The installer interprets any other return value as failure. To ignore return values, set the msidbCustomActionTypeContinue bit flag in the Type field of the CustomAction table.

For more information about the msidbCustomActionTypeContinue option and other return processing options, see Custom Action Return Processing Options.

Note that Windows Installer translates the return values from all actions when it writes the return value into the log file. For example, if the action return value appears as 1 in the log file, this means that the action returned ERROR_SUCCESS. For more information about this translation see Logging of Action Return Values.

Logging of Action Return Values

The Installer writes the following values into the log when an action returns these error codes. For the entire list of error codes returned by the Windows Installer function calls MsiExec.exe, and InstMsi.exe, see Error Codes.

Error Code Values returned by function calls MsiExec.exe, and InstMsi.exe Values that appear in the Log. Description
ERROR_FUNCTION_NOT_CALLED 1626 0 A function could not be executed.
ERROR_SUCCESS 0 1 An action completed successfully.
ERROR_INSTALL_USEREXIT 1602 2 A user canceled installation.
ERROR_INSTALL_FAILURE 1603 3 A fatal error.
ERROR_INSTALL_SUSPEND 1604 4 The installation suspended, incomplete.
ERROR_SUCCESS 0 5 The action completed successfully.
ERROR_INVALID_HANDLE_STATE 1609 6 The handle is in an invalid state.
ERROR_INVALID_DATA 1626 7 The data is invalid.
ERROR_INSTALL_ALREADY_RUNNING 1618 8 Another installation is in progress. Only one installation at a time can run actions in the InstallExecuteSequence, AdminExecuteSequence, or AdvtExecuteSequence tables.

 


반응형