kkuzil.own@gmail.com

Posted
Filed under Development/etc.
.cmd 파일에 파라미터 값을 넣어서 다르게 처리해줘야 할 일이 있었는데...
이게 잘 동작하지 않았다.

>build.cmd RELESE;TRACE

이렇게 한다고 치면 build.cmd 에서는 RELESE만 인식하고 세미콜론(;) 밑으로는 처리되지 않고,

>build.cmd "RELESE;TRACE"

이렇게 하면 build.cmd에서 "RELESE;TRACE" 이렇게 그대로 받아오긴 하지만...
build.cmd에서 기본값으로 사용하는 값을 파라미터 뒤에 붙히기 힘든상황이었다..
예) TRANS라는 값을 상황에 따라 build.cmd의 "RELESE;TRACE" 파라미터 값에 꼭 붙혀야 할때 "RELESE;TRACE"TRANS 이렇게 밖에 붙혀지지 않았다.

그래서 RELESE;TRACE;... 라는 파라미터를 따옴표(")없이 세미콜론(;)을 포함해서 받아 오려면 방법이 없을까!!
결국 삽질 끝에.. 찾아냈다.

파라미터를 받아오는 build.cmd 안에서

SET DEFIND=%~1

이렇게 물결(~)을 앞에 추가하면 따옴표(")를 제외한 값을 사용할 수 있게 된다.
아.. 삽질 너무 싫어...
2014/07/14 09:09 2014/07/14 09:09
Posted
Filed under Development/Delphi
다른 컴포넌트나 라이브러리의 클래스를 사용 할때 기존 소스코드의 변형없이 편하게 기능을 추가 할때 helper  클래스를 사용해왔는데 기작성된 메쏘드, 속성이 private에 있으면 사용이 안된다...
하지만...! 약간의 삽질 결과 아주 간단하게 해결됨..!! -ㅁ-)/


private 의 메쏘드와 속성을 사용할때 앞에 자신을 가리켜 주면된다.("Self.")

type
...
...
// 원래 클래스 형태

  TCustomEdit = class(TWinControl)
  private
    ..
    FMaxLength: Integer;
    ..
    ..

// helper 작성
  TTCustomEditHelper = class helper for TCustomEdit

  public
    procedure SetDefMaxLen;
    ..




implementation


procedure TTCustomEditHelper.SetDefMaxLen;
begin
  Self.FMaxLength := 100; // 요렇게
end;
2014/06/30 15:08 2014/06/30 15:08
Posted
Filed under Development/etc.
일반적으로 std C 스타일로 컴파일된 DLL 들은 DLL 뷰어(dllexp.exe)로 확인하면 아래와 같이 보이게 된다.
함수 형식은 보이지 않으며 함수 이름만 확인 할 수 있다.
사용자 삽입 이미지



하지만 VC++ 환경에서 C++ 스타일로 컴파일을한 DLL들을 아래처럼 함수 원형까지 확인할 수 있게 되는데..
이렇게 보이는 함수들은 VC++가 아닌 다른 개발언어에서 함수 어드레스를 "함수 이름"으로 불러 올수 없다..
사용자 삽입 이미지


그래도 사용할  수 있는 방법은... 아래와 같다.
DLL 뷰어 (dllexp.exe)를 실행한 후 "Undecorate C++ function names"를 체크해제

사용자 삽입 이미지


체크를 해제 하고 DLL을 불러오면 함수이름이 다르게 나오는걸 확인 할 수 있다.

이렇게 나오는 함수이름을 통해서 사용하면 된다.
예) FunTest = GetProcAddress(hDll, "?test_lib@@YAHXZ");


개발 코드상 보기에는 좋지 않다는.. 그래도 쓸수 있는게 어디겠냐만은..

사용자 삽입 이미지
2014/06/23 14:26 2014/06/23 14:26
Posted
Filed under Development/etc.
요즘 SSD를 쓰는데 안그래도 용량없어서 신경쓰이는 중에 C 루트에 hiberfil.sys 이게 계속 신경쓰였다..
절전 모드 관련 파일이라는 걸 알고 있었는데 없애는 방법이 있는지 몰랐다.

친구의 제보로 알게된 팁!

관리자 권한이 있는 cmd를 띄어놓고

powercfg -h off

하면 끝~
2014/02/28 15:55 2014/02/28 15:55
Posted
Filed under Development/etc.
visual c++ 2005 sp1 런타임 패키지를 배포하고 싶은데 사용자 눈에 거슬리지 않게 조용히 배포하고 싶었다.
그래서 관련 옵션을 찾는중 "vcredist_x86.exe /q" 가 있었는데 이건 자동 설치이고..
내가 원하는건 설치 화면까지 보이지 않는것있는데... 그래서 방법을 찾아보았다.

vcredist_x86.exe /q:a /c:"VCREDI~3.EXE /q:a /c:""msiexec /i vcredist.msi /qn"" "


이렇게 하면 조용히 화면 안뜨고 설치가 잘된다..
자세한 사항은 "여기"를 참고..



기타


However, if you have downloaded the standalone VC 8.0 redistributable packages, you will need to modify the command lines slightly.  The following command lines can be used to install the original release of the standalone VC 8.0 redistributable packages:

For x86: vcredist_x86.exe /q:a /c:"VCREDI~1.EXE /q:a /c:""msiexec /i vcredist.msi /qn"" "
For x64: vcredist_x64.exe /q:a /c:"VCREDI~2.EXE /q:a /c:""msiexec /i vcredist.msi /qn"" "
For ia64: vcredist_ia64.exe /q:a /c:"VCREDI~3.EXE /q:a /c:""msiexec /i vcredist.msi /qn"" "
The following command lines can be used to install the Visual Studio 2005 SP1 release of the standalone VC 8.0 redistributable packages:

For x86: vcredist_x86.exe /q:a /c:"VCREDI~3.EXE /q:a /c:""msiexec /i vcredist.msi /qn"" "
For x64: vcredist_x64.exe /q:a /c:"VCREDI~2.EXE /q:a /c:""msiexec /i vcredist.msi /qn"" "
For ia64: vcredist_ia64.exe /q:a /c:"VCREDI~1.EXE /q:a /c:""msiexec /i vcredist.msi /qn"" "
The following command lines can be used to install the Visual Studio 2005 SP1 ATL Security Update release of the standalone VC 8.0 redistributable packages:

For x86: vcredist_x86.exe /q:a /c:"VCREDI~3.EXE /q:a /c:""msiexec /i vcredist.msi /qn"" "
For x64: vcredist_x64.exe /q:a /c:"VCREDI~2.EXE /q:a /c:""msiexec /i vcredist.msi /qn"" "
For ia64: vcredist_ia64.exe /q:a /c:"VCREDI~1.EXE /q:a /c:""msiexec /i vcredist.msi /qn""
2014/02/12 11:32 2014/02/12 11:32