Q&A

  • JPG에 관한 질문입니다.
제가 DLL 에 리소스를 써서 리소스 DLL을 쓰고 있는 사람입니다.
그런데 리소스에 들어가는 이미지 들이 BMP여서 파일의 용량이 크면 덩달아
DLL로 같이 커집니다.. 그런데 혹시 JPG를 리소스에 넣고 로드하는 방법은 없나요???
2  COMMENTS
  • Profile
    최용일 2002.03.13 03:07
    안녕하세요. 최용일입니다.

    그냥 리소스에다가 RCDATA형식으로 JPG를 구겨넣으시구, 리소스 관련 API함수들 쓰시면 됩니다....

    아래와 같은 형식으로 스크립트 만들어서 델파이의 BRCC32.exe로 컴파일 하면 리소스 만들어 집니다.

    리소스이름 RCDATA 리소스패스
    예) test RCDATA C:test.jpg

    procedure TForm1.Button1Click(Sender: TObject);
    var
      DllHandle: THandle;
      ResHandle: THandle;
      MemHandle: THandle;
      ResSize: Integer;
      ResPtr: Pointer;
      Stream: TMemoryStream;
    begin
      DllHandle := LoadLibrary('D:Projectstest.dll');
      if DllHandle <> 0 then
      begin
        try
          ResHandle := FindResource(DllHandle, 'test', RT_RCDATA);
          if ResHandle <> 0 then
          begin
            ResSize := SizeOfResource(DllHandle, ResHandle);
            MemHandle := LoadResource(DllHandle, ResHandle);
            if MemHandle <> 0 then
            begin
              ResPtr := LockResource(MemHandle);
              if ResPtr <> nil then
              begin
                Stream := TMemoryStream.Create;
                Stream.Write(ResPtr^, ResSize);

                // Stream에 들어 있으니까 파일로 저장하시던가 화면에
                //보여주시던가... 님이 알아서하세요...

                Stream.Free;
              end;
            end;
          end;

        finally
          FreeLibrary(DllHandle);
        end;
      end;
    end;

    ^^ 항상 즐코하세요...

  • Profile
    오정훈 2002.03.13 03:25
    감솨 합니다..

    함 적용해 보구 이상있으면 글올리겠습니다.
    • 이창환
    • 2002.03.13 02:46
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 김강수
      2002.03.13 03:09
      첫번째 답변은 제가 웹커낵션을 해보지 않아서 답변 드릴 수가 없구요. 전 DATA간의 형식 불일치로 인한 i...
    • 이정석
    • 2002.03.13 02:44
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 공성환
      2002.03.13 02:49
    • 이은정
      2002.03.13 03:16
    • 이창환
      2002.03.14 07:22
    • 나두초보!!
      2002.03.13 10:01
    • 이은정
      2002.03.13 23:14
    • 나두초보!!
      2002.03.13 23:59
    • 김광재
    • 2002.03.13 02:19
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 김경록
      2002.03.13 02:36
      단순히 님이 말씀하신 6자리를 필요로 한다면, if문을 사용하여 '0' 문자를 추가해 주심 되는것 같은데.. ...
    • 이채성
      2002.03.13 02:26
      포맷함수를 쓰면 될 것 같은데요..   Label1.Caption := Format('%.2d',[1]); 이렇게 하면 ...
    • 염상철
    • 2002.03.13 02:07
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 김경록
      2002.03.13 02:20
      오라클에는 시스템 변수중에 rownum이라는 것이 있습니다. Select절 추가해 보십시오.. 예)  ...
    • 염상철
      2002.03.13 02:57
      오늘 하루 종일 그것만 붙잡거 있었는데... 바로 해결해 주시니 정말 감솨합니다. 근데여..하나더 물어...
    • 김경록
      2002.03.13 06:14
      음... Query로는 많은 시간이 투자될듯 하군여.. 그래서, Query와 DataSet 컴포넌트를 가지고 해결하는게 ...
    • 염상철
      2002.03.13 19:41
      정말 감솨합니다.~~ 정말 정말  정말  정말  정말 감솨합니다.
    • Sean
    • 2002.03.13 02:00
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 장지용
      2002.03.13 02:24
      "REGEDIT" 을 실행하시고 HKEY_CURRENT_USER      SOFTWARE  &...
    • 오정훈
    • 2002.03.13 01:42
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2002.03.13 03:07
      안녕하세요. 최용일입니다. 그냥 리소스에다가 RCDATA형식으로 JPG를 구겨넣으시구, 리소스 관련 API함...
    • 오정훈
      2002.03.13 03:25
      감솨 합니다.. 함 적용해 보구 이상있으면 글올리겠습니다.
    • 최석기
      2002.03.13 01:54
      무슨 함수로 서브 프로그램을 실행 시키시는 지는 모르겠지만 Winexec 함수의 두번째 파라메터로 조정이 ...
    • 이채성
      2002.03.13 02:21
      답변 감사합니다 프로그램을 COM으로 설계해서 COM으로 실행하고 있습니다. 그래서 WinExec로는 해결이...
    • 김광재
    • 2002.03.13 01:28
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 김경록
      2002.03.13 01:48
      님 질문을 자세히 해지시면 좋겠네여.. 그냥 1~12까지만 for문을 돌리겠다는건지. 아님.. 1~12월까지 ...
    • 미소나눔
      2002.03.13 01:37
      for i:=1 to 12 do   for j:=1 to 31 do
    • 김경록
      2002.03.13 01:23
      음.. 일반 책을 보시면 나올듯 한 질문이군여.. 일단 어떻게 DB와 연결하는지 아시다니까 그것은 빼고 쓰...
    • 프로초보
      2002.03.13 01:37
      님 말씀하신대루 그대루 하니깐 되네염.. 전 님이 맹그신 간단한 도표(??)의 두번째 방법을 쓴건데염.. ...
    • 김경록
      2002.03.13 02:15
      일단은 해결되셨다니 다행이네요.. 수정하신 글 읽었습니다. 그런데여.. 님은 꺼꾸로 하셔서.. 그렇게 ...
    • 프로초보
      2002.03.13 03:29
      감사드려염~~ 다음에 이어질 검색 질문을 기대해 주시길..ㅋㅋ..^^;;;;;;;; 후후... 이렇게만 척척 나가 ...
    • 김경록
      2002.03.13 01:28
      익스플로어 버젼을 확인해 보세여.. 익스플로어 버젼 때문에 생길 수 있는 문제같습니다..
    • 어린왕자A
      2002.03.13 02:22
      그냥 익스플로러를..6.0으로 깔았습니다. 그래도 안되는 군요..
    • 김강수
      2002.03.13 03:15
      음냐. 수고하십니다. 귀하의 문제는 Install Shield 사의 홈페이지에 가시면 BDE 세팅에 관련된 Script 파...
    • 강신구
    • 2002.03.13 00:25
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 장지용
      2002.03.13 03:35
      "SY" 로 시작되는 건 "SYMBOL TABLE" 에러 입니다. 해당 ".DSM" 화일 지...
    • 최석기
    • 2002.03.12 23:53
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 최영환
    • 2002.03.12 23:45
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 김경록
      2002.03.13 00:23
      글쎄여.. 님이 어떤 컴포넌트를 사용할지는 잘 모르겠지만, 또한 DBGrid의 내용을 그데로.. 그러니까 조회...
    • 김강수
      2002.03.13 03:19
      제 기억으로는 해당 사항의 의문점은 해결이 안 된 듯 합니다. MIDAS 연결 방식에 DCOM 방식이 있는데 이...
    • 오경태
    • 2002.03.12 23:08
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 푸른하늘
      2002.03.13 00:22
      첫번째 Insert 질의문을 감싸는 ' 이 빠졌고요.. sql.add('   )---> sql.add('  ...
    • 서현우
      2002.03.13 00:16
      values가 빠졌네요.... insert into table_name values (field1, field2........)
    • 초보
    • 2002.03.12 22:56
    • 0 COMMENTS
    • /
    • 0 LIKES