해킹하고 나서 소스 찾기가 힘들어서 정리..

기본적으로 자주 쓰는 소스

http://cydia.hackulo.us/

http://cydia.xsellize.com/

http://sinfuliphonerepo.com/

http://www.myrepospace.com/hackstor

http://repo.modyouri.com/

http://www.biteyourapple.net 내 폰이 안 좋은지 이녀석은 추가가 안되네..

http://www.h7v.org/

 

위 소스만 가지고 있으면 기본적인 것들은 다 사용할 수 있는듯…

응용 프로그램 구성이 올바르지 않기 때문에 이 응용 프로그램을 시작하지 못했습니다.....

이 에러때문에 며칠을 고생했는지 모르겠다... 재배포 패키지를 설치했다 지우고...
프로그램 컴파일 설정도 바꿔보고...
그러다.. depends로 하나씩 비교하다 보니.. 

MFC90.DLL이 
C:\WINDOWS\WinSxS\x86_Microsoft.VC90.MFC_1fc8b3b9a1e18e3b_9.0.30729.4148_x-ww_a57c1f53
폴더에 연결되어 있는 것이었다.. 
적용 할려고 하는 컴퓨터에는 없고.. 결국 이 녀석을 고치기 위해서.. 다음의 링크에서 다운 받아서 설치하니..
실행이 되었다..

그 링크는 다음과 같다..

Microsoft Visual C++ 2008 서비스 팩 1 재배포 가능 패키지 ATL 보안 업데이트
http://www.microsoft.com/downloads/ko-kr/details.aspx?FamilyID=2051a0c1-c9b5-4b0a-a8f5-770a549fd78c

우띠.. 이것 때문에 며칠을 헤맨거야.. ㅠㅠ

  1. .. 2011.03.26 18:52 신고

    최고입니다 저도 오늘 갑자기 포토샵이랑 다 먹통되서 난감했는데 덕분에 고쳤어요! 감사합니다

  2. Joona 2013.12.28 01:58 신고

    감사합니다!

ARToolKit 라이센스 버전을 설치하면서 겪은 문제점과 대처 방법을 정리..

사용툴 Visual Studio 2008.
사용 라이브러리.. ARToolKit Professional/NFT

사용자 변수는 아래와 같다..
ARTOOLKIT_2_ROOT C:\Program Files\ARtoolKit
ARTOOLKIT_4_ROOT C:\Program Files\ARToolKit4
ARTOOLKIT_NFT_ROOT C:\Program Files\ARToolKitNFT

'S/W 개발 > ETC' 카테고리의 다른 글

유명 DNS 주소  (0) 2011.06.14
ARToolkit Pro / NFT 설정 방법  (0) 2010.11.18
Handy AR  (0) 2010.04.01
윈도우용 특수 문자표  (0) 2010.03.04
*무게 중심(Center of Mass)
 - 좌표 공간에서의  무게 중심
 무게 중심 = sum(좌표값) / 좌표 개수
좌표 값을 모두 합한 뒤, 좌표의 개수로 나눔으로써 쉽게 구할 수 있다.
*영상의 무게 중심
- 영상 무게 중심 = sum(픽셀) / 픽셀 갯수
int nCount; // 총 픽셀 수
int nSumX; // X 좌표수
int nSumY; // Y 좌표수
double dCenter[2];           // 중심 좌표..
for(int i = 0; i < height; i++)
{
  index = i*img->widthStep;
  for(int j = 0; j < width; j++)
  {
    if( (BYTE)img->imageData[index + j] == 255)
    {
      nCount++;
      nSumX += j;
      nSumY += i;
    }
  }
}
/////////////////////////////////////////////////////////////////

if( nCount != 0 )
{
  dCenter[0] = nSumX  / nCount;
  dCenter[1] = nSumY  / nCount;
}
else
   dCenter[0] =  dCenter[1] = 0;

다운은 다음 주소에서 받으면 된다..

내가 받은건 크롬이었는데, 크롬의 버그인지.. 맥OS의 버그인지 기본 화일명으로 다운 받으니까. 이상하게 에러 발생됨.

그래서, 파일명만 바꾸고 다시 시도.. 하니까.. 패키지가 설치 되었다..


FaceTime을 사용할 사람이 많지 않아서  내 아이폰4랑 형 아이폰4에 테스트를 해 보았다.

아이폰4에서 아이맥으로 전화를 걸때에는 설치하고 난 뒤 설정한 Apple ID(이메일 계정)으로 연결하니 연결이 되었고,
아이맥에서 아이폰4로 연결할 때에는 전화번호를 선택하니 가능했다.
(아마 이메일로 선택해도 될 듯 하긴 한데..)

아이폰4에서 보는 화질은 괜찮아 보였다. 전체적으로 화면이 작다보니 크게 손실 됨을 느낄수는 없는듯 했다..
아이맥에서 기본 크기로 볼때에는 화질 차이는 없어 보이는듯.. 하지만 전체 화면으로 하니까.. 
화소 영향으로 어쩔 수 없이 화소 깨짐 현상 발생되었다.. 아이폰에서 전면 카메라를 사용하거나 후면 카메라를 사용할 때 모두 영상 차이가 없는것으로 보아 Face Time에서 전송되는 화질은 같은 화질을 사용하는 듯한 듯...









그리고, 아이폰의 Face-Time을 사용할 때 세로로만 되는 줄 알고 있었는데...
오늘 아이폰을 가로로 잡고 테스트 하니 가로보기가 가능했다. 이런거는 왜 광고에서나 알림에서 나오지가 않았을까..

좌우지간 아이폰을 기울이면 다음과 같이 화면이 바뀌어 나오게 된다.
물론 아이맥에서도 화면은 자동으로 회전하게 된다. 



집에서 사용한다면 안사람이 나의 Mac을 사용할 때 외부에서 Wi-Fi가 사용 가능한 지역에서만 사용할 듯 하다..

사진을 좀 이쁘게 찍을걸 그랬나보다.. 운동하고 와서 씻고 바로 찍은거라 조금은 그렇네..

아래는 관련된 유투브 
애플에 자신이 등록한 제품을 알고 싶을때...


를 가서 My Products를 클릭해 보면 알 수 가 있다..

찾기가 힘들어서 기억 저장용으로 남겨둠...


레지스트리 편집기(regedit.exe)를 실행시킨 후 

HKEY_CURRENT_USER / Software / Microsoft / Visual Studio / 비주얼스튜디오 버전(*.0) / ProjectMRUList

까지 찾아간뒤 원하는 목록 제거..




OpenCV에서 한글 출력과 관련해서 웹에서 찾아보니.. Conv2 님의 블로그에 보니 함수를 직접 만들어 사용하는 법이 나와 있었다.

정지 영상에서는 아무 문제없이 잘 되는 듯해서 사용하고 있었는데, 이것을 실시간 동영상으로 받아서 처리하다보니.. 메모리가 새는 문제가 있었다. (GDI증가.. 메모리 증가... 그러다가.. 다운... ㅠㅠ)
 Conv2님은 그대로 사용하지 말라고 했으나, 경고를 무시한 나의 잘못이니.. 그래서.. 직접 수정하기로 했다..

Conv2님의 설명은 아래 링크를 따라 가면 된다..

수정해서 나온 코드는 아래와 같다..
* 헤더 부분

더보기


* 소스부분

더보기


* 사용법

더보기


이렇게 처리하면 화면 메모리가 계속 증가해서 시스템이 다운되는 문제가 해결되었다.

아직까지는 문제가 없는 듯하지만.. 다른 문제가 발생한다면.. 다시 한번 찾아봐야지.. 뭐...

에고 힘들다..

P.S Conv2님의 글에 트랙백을 걸려고 했으나.. 트랙백이 막혀 있는지 트랙백 에러가 난다.. ㅠㅠ
  1. 2013.03.19 21:10

    비밀댓글입니다

    • 2018.02.13 12:17

      비밀댓글입니다

  2. 나그네 2013.03.20 08:59 신고

    해당 코드가 릴리즈모드에서는 글자가 깨지나요? 디버그모드에서는 한글출력이 잘되던데 릴리즈모드에서는 cvputtext의 인자로는 잘넘어가는데 말이죠

  3. 작은쌀톨 2016.12.06 09:54 신고

    프로그래밍 초보자라서 왜그런지 모르겠지만
    이걸 그대로 쓰면 CGlobal에서 오류가 나네요 ㅠㅠ
    뭐가 빠진걸까요 ㅠㅠ

MFC 사용하다보면 자주 만나는 경고... 메시지.. 찾아보면 다음과 같이 해결책을 제시하고 있네...
[출처] http://msdn.microsoft.com/ko-kr/library/6wtdswk0(VS.80).aspx

링커 도구 경고 LNK4098
오류 메시지
'library' defaultlib가 다른 라이브러리와 충돌합니다. /NODEFAULTLIB:library를 사용하십시오.
defaultlib 'library' conflicts with use of other libs; use /NODEFAULTLIB:library
호환되지 않는 라이브러리에 링크하려고 했습니다.
Note참고

런타임 라이브러리에는 여러 형식이 혼합 사용되지 않도록 하는 지시문이 들어 있는데 여러 형식이나 디버그/비디버그 버전의 런타임 라이브러리를 동일한 프로그램에서 사용하려고 하면 이 경고가 발생합니다. 예를 들어, 어떤 종류의 런타임 라이브러리를 사용하는 파일을 컴파일하고 다른 종류의 런타임 라이브러리를 사용하는 파일을 컴파일한 다음(예: 단일 스레드 라이브러리와 다중 스레드 라이브러리) 이 둘을 링크시키려고 하면 이 경고가 발생합니다. 동일한 런타임 라이브러리를 사용하는 소스 파일을 컴파일해야 합니다. 자세한 내용은 런타임 라이브러리 사용(/MD/MT/LD) 컴파일러 옵션을 참조하십시오.

링커의 /VERBOSE:LIB 스위치를 사용하여 링커가 검색 중인 라이브러리를 확인할 수 있습니다. 예를 들어, LNK4098이 발생하여 단일 스레드된 비디버그 런타임 라이브러리를 사용하는 실행 파일을 만들려는 경우에는 /VERBOSE:LIB 옵션을 사용하여 링커에서 검색 중인 라이브러리를 확인하십시오. 링커는 검색한 라이브러리로 LIBC.lib를 출력하며 LIBCMT.lib, MSVCRT.lib, LIBCD.lib, LIBCMTD.lib 또는 MSVCRTD.lib는 출력하지 않습니다. 무시할 각 라이브러리에 대해 /NODEFAULTLIB를 사용하여 링커가 잘못된 런타임 라이브러리를 무시하도록 할 수 있습니다.

다음 표는 사용할 런타임 라이브러리에 따라 무시해야 하는 라이브러리를 보여 줍니다.

사용할 런타임 라이브러리무시해야 하는 라이브러리

단일 스레드(libc.lib)

libcmt.lib, msvcrt.lib, libcd.lib, libcmtd.lib, msvcrtd.lib

다중 스레드(libcmt.lib)

libc.lib, msvcrt.lib, libcd.lib, libcmtd.lib, msvcrtd.lib

DLL을 사용하는 다중 스레드(msvcrt.lib)

libc.lib, libcmt.lib, libcd.lib, libcmtd.lib, msvcrtd.lib

디버그 단일 스레드(libcd.lib)

libc.lib, libcmt.lib, msvcrt.lib, libcmtd.lib, msvcrtd.lib

디버그 다중 스레드(libcmtd.lib)

libc.lib, libcmt.lib, msvcrt.lib, libcd.lib, msvcrtd.lib

DLL을 사용하는 디버그 다중 스레드(msvcrtd.lib)

libc.lib, libcmt.lib, msvcrt.lib, libcd.lib, libcmtd.lib

예를 들어, 이 경고가 발생한 경우와 비디버그, 단일 스레드 버전의 런타임 라이브러리를 사용하는 실행 파일을 만들려는 경우에는 링커에 다음 옵션을 사용하면 됩니다.

/NODEFAULTLIB:libcmt.lib /NODEFAULTLIB:msvcrt.lib /NODEFAULTLIB:libcd.lib /NODEFAULTLIB:libcmtd.lib /NODEFAULTLIB:msvcrtd.lib

두 라이브러리를 사용하다보니 서로 변환할 일이 생겼다.. 그래서.. 구글 사마에게 물어보니 아래와 같은 답을 보여 주었다..

ARUint8 *dataPtr;
IplImage *image_opencv, *gray_opencv;

//ARToolkit→OpenCV
image_opencv = cvCreateImage(cvSize(arImXsize, arImYsize), IPL_DEPTH_8U, 4);
memcpy(image_opencv->imageData, dataPtr, image_opencv->imageSize);

//何らかの処理
gray_opencv = cvCreateImage(cvSize(arImXsize, arImYsize), IPL_DEPTH_8U, 1);
cvCvtColor(image_opencv, gray_opencv, CV_BGRA2GRAY);
cvAdaptiveThreshold(gray_opencv, gray_opencv, 255, CV_ADAPTIVE_THRESH_MEAN_C, CV_THRESH_BINARY, 11, 10);
cvCvtColor(gray_opencv, image_opencv, CV_GRAY2BGRA);

//OpenCV→ARToolkit
dataPtr = (ARUint8*)(image_opencv->imageData);




void ARtoIpl(IplImage* ipl, ARUint8* arimg,int flag){

int width = ipl->width; //ARのImageも同じ幅とする
int height = ipl->height; //ARのImageも同じ高さとする
int ARWidthStep = width * 4;

for(int j = 0; j < height; j++)
{
 for(int i = 0; i < width; i++)
{
  t0 = ipl->widthStep * j + i * ipl->nChannels;
  t1 = ARWidthStep * j + i * 4;
  
  for(int c = 0; c <>nChannels; c++)
{
   if(flag == -1) arimg[t1 + c] = ipl->imageData[t0 + c];
   else ipl->imageData[t0 + c] = arimg[t1 + c];
  }
 }
}




  1. 시골아이 2013.01.26 15:29 신고

    좋은 글 감사합니다

    ARUint8의 모든 내용을 파일로 옮겨서 살펴보니 4번째마다 0이 들어가 있었는데

    그 이유가 이런것이었군요...

+ Recent posts

티스토리 툴바