2011. 8. 27. 18:42
SQLite 를 좀 수정해서 쓸 일이 있어서 repository를 찾아보니 fossil 이라는 듣도못한 잡 DVCS를 쓰고 있었다.
SQLite 개발자가 직접 만든 거 같은데 뭔가 특이하긴 하다. 최근엔 UnQL이란 NoSQL계열 DBMS 도 만드는거 같은데 backend 를 죄다 직접 만들 셈인가 보다.

어쨌거나 Fossil을 쓰려면 미리 만들어진 binary를 쓰거나 직접 컴파일을 해야하는데 직접 컴파일을 할때 2011-07-13 일자 1.18 버젼을 받아서 configure 명령을 치면 아래와 같은 에러가 난다. 이는 auto.def 파일의 문법이 잘못되서 그렇다. 다음과 같은 patch 파일을 만들어 patch한다. 아래를 auto-def-missing-bracket.patch 로 저장한다. 또는 간단한 문법 에러므로 직접 101번째 줄에 ] 가 빠진걸 넣어줘도 된다. 다음으로 make install을 하면 옮겨야할 곳의 디렉토리를 생성 안하고 mv 명령을 때리기 때문에 에러가 난다. --prefix 로 /usr/local/stow/fossil 이었을 경우 /usr/local/stow로 이동하여 fossil 과 fossil/bin 을 생성해준다.
Posted by envi
2010. 4. 24. 17:07
1>Linking...
1>CVTRES : fatal error CVT1100: duplicate resource.  type:MANIFEST, name:1, language:0x0409
1>LINK : fatal error LNK1123: failure during conversion to COFF: file invalid or corrupt

위 에러가 났을때 발견한 두가지 해법.


1.
I dealt with this error in a Code Project sample by commenting out the resource file manifest. Turning off the embedded manifest in the project settings allowed the project to build, but at run time it was unable to find ATL80.dll.
Commenting the line
1                       RT_MANIFEST             "res\\TestApp.manifest"

그냥 간단히 말해 해당 프로젝트의 .rc 파일에 RT_MANIFEST 가 들어가있는 행을 찾아 주석처리한다.

2.
Project property -> Manifest Tool -> Input and Output -> Embed Manifest : yes -> no
Posted by envi
2010. 3. 14. 18:26
Windows 7 부터 도입된 Jumplist 는 정말 편합니다.  MRU 의 강화판인 이 기능은 어느새 윈도우 사용 패턴(?)중 하나로 들어왔는데 언제부터인가 Jumplist에 있는 특정 목록이 안지워지는 현상이 발생하는 경우가 종종 있습니다.

저같은 경우는 IE의 점프리스트가 문제가 됬는데 네트워크 드라이브 상에 있는 특정 html 파일을 연후 이것을 '이 목록에 고정' 기능을 이용하여 고정 시킵니다. 그리고 해당 파일을 지워버리면 그 이후부터 핀 리스트에 있는 해당 항목은 삭제가 되지 않는 현상이 발생합니다.

어쨌거나 이리저리 삽질하다가 다음과 같은 해결책을 알아냈습니다.

시작 -> 실행 후 아래 커맨드를 입력후 확인을 누릅니다.
%AppData%\Microsoft\Windows\Recent\AutomaticDestinations

그러면 탐색기에 1b4dd67f29cb1962.automaticDestinations-ms, 4975d6798a8bdf66.automaticDestinations-ms 같은 알수 없는 이름들의 파일이 보일겁니다.
이것들이 바로 Jumplist 정보를 담고 있는 파일들입니다.

하지만 괴상한 이름의 파일들만으로는 어떤 파일이 원하는 Jumplist 인지 알기가 힘든데요. 원하는 항목을 쉽게 알수있는 꽁수가 있습니다.
원하는 항목에 핀 리스트에 아무 항목이나 고정 시키면 저 파일중 하나가 수정된 날짜가 변경되므로 이후 최근 날짜 파일을 지우면 해당 항목이 초기화 된 것을 볼 수 있습니다.
Posted by envi
2010. 3. 2. 11:26
VC6 으로 만들어진 소스를 영문화 시켜 해외에 내보낼 일이 생겼어요.
그래서 영문 리소스를 한짝씩 더 만들고 소스에 박혀있던 문자열을 죄다 String Table에 박는 노가다를 끝낸 후 SetThreadLocale로 언어를 바꾸고 실행했는데.... 안먹히잖아!
이게 뭐야! 하고 찾아봤더니 Vista 이상부터는 안먹는다네요..
그래서 XP나 Vista 이상에서도 돌수있도록 다음과 같이 적절하게 만들어쓰면되요.

// Vista 이상부터는 SetThreadLocale로 사용자가 직접 언어를 선택하는걸 허용하지 않는다.

// 이 함수는 XP 는 SetThreadLocale을 쓰고 Vista 이상은 SetThreadUILanguage를 부른다.

// 하지만 되도록 이걸 쓰지말고 dll로 리소스를 분리하는게 좋을듯...

bool SetThreadLocaleEx(LCID lcLocale)

{

OSVERSIONINFO osVersion;

osVersion.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);

if (::GetVersionEx(&osVersion) == FALSE)

{

return false;

}


if (osVersion.dwMajorVersion == 6)

{   // >= Windows Vista

HINSTANCE hKernelDll = ::LoadLibrary(_T("kernel32.dll"));  

if (hKernelDll == NULL)

{

return false;

}

unsigned (WINAPI* SetThreadUILanguage)(LANGID) = (unsigned (WINAPI* )(LANGID))::GetProcAddress(hKernelDll, "SetThreadUILanguage");

if (SetThreadUILanguage == NULL)

{

return false;

}

LANGID resLangID = SetThreadUILanguage(static_cast<LANGID>(lcLocale));

return (resLangID == LOWORD(lcLocale));

}

else // <= Windows XP

{

return ::SetThreadLocale(lcLocale) ? true : false;

}

}

 
아 귀찮아요 [...]
Posted by envi
2010. 1. 15. 10:15
ODBC 관리자로 MS Access Driver 를 이용해서 mdb 파일을 연결하려고 했습니다.
윈도우 7 x64 에서 XP 에서 했던 기억을 더듬어서 추가하려고 했는데.. 드라이버 목록에 SQL Server 와 SQL Native Client 밖에 목록에 없네요..
아.. 뭐 되는게 없네.. 좌절하고 딴짓좀 하다가 문득 생각난게..

"아.. 64bit라 그런가?" 하고 찾아봤더니  32bit ODBC 관리자를 실행하면 되는거랩니다.

실행 -> "c:\windows\syswow64\odbcad32.exe" 로 실행하면 목록에 보일겁니다.


출처: https://msmvps.com/blogs/spywaresucks/archive/2007/05/11/897398.aspx
Posted by envi
2008. 12. 25. 18:20
Android App 개발을 해보려고 Eclipse 를 실행시켰습니다. 그런데....


아악... 실행도 안되는건가..

classpath 와 path 를 점검해봐도 별 문제는 없어보입니다..

인터넷을 뒤져보니...

원인은 메모리 부족으로 JVM이 종료가 된다는 글이 보입니다.
eclipse.ini 파일의 -Xmx512m를 -Xmx256m 정도로 변경하는 걸로 해결이 된다고 합니다.
그런데.. 이미 256m 으로 되어있네요 [...]

다른 글을 찾아봅니다.

...--launcher.XXMaxPermSize 옵션을 제거하면 된다는 글이 보입니다.... 적용 후 실행해봤지만 역시나 안됩니다.
메모리 부족 문제는 아닌거 같네요.

JVM path 가 잘못되어있는건 아닌가하고 Program files 의 java 디렉토리로 가봤는데.. java 가 여러곳에 들어있네요.
JVM 경로를 강제로 설정하는 방법이 없나하고 찾아 추가를 합니다.

-vm
C:\Program Files\Java\jdk1.6.0_12\bin\javaw.exe

추가 후 다행히 실행이 잘되네요. ;)

이제 Android App 개발에 대해 연구나 해봐야겠습니다.
Posted by envi