明熊JPEG保存DLLを使用する

  ダウンロード



http://www.vector.co.jp/soft/win95/prog/se093621.html

ダウンロードしたら解凍して SaveJPG.dll を Windows のシステムディレクトリへコピーします



  DLL の情報を確認



  
コマンドプロンプトより以下を実行

dumpbin /EXPORTS %SYSTEMROOT%\system32\SaveJPG.dll
  

dumpbin は Visual Studio VC++ 6.0 のツールです。
PATH に C:\Program Files\Microsoft Visual Studio\VC98\bin がある事を確かめて下さい

Microsoft (R) COFF Binary File Dumper Version 6.00.8447
Copyright (C) Microsoft Corp 1992-1998. All rights reserved.


Dump of file C:\WINDOWS\system32\SaveJPG.dll

File Type: DLL

  Section contains the following exports for SaveJPG.dll

           0 characteristics
           0 time date stamp Thu Jan 01 09:00:00 1970
        0.00 version
           1 ordinal base
           3 number of functions
           3 number of names

    ordinal hint RVA      name

          3    0 00053BB8 CliptoJPEG
          2    1 00053A3C DCSavetoJPEG
          1    2 000538D0 SavetoJPEG

  Summary

        1000 .edata
        2000 .idata
        5000 .reloc
        3000 .rsrc
        1000 BSS
       53000 CODE
        2000 DATA



  明熊用ポインタ変数の型を定義

  
#include "stdafx.h"
#include <windows.h>

// SavetoJPEG用
typedef WORD (__stdcall *LPFUNC_1)
(
	LPCTSTR bmpf,
	LPCTSTR jpgf,
	BYTE Value,
	short Prgrs
);

int main(int argc, char* argv[])
{
	return 0;
}
  



  DLL のロードテスト

  
#include "stdafx.h"
#include <windows.h>

// SavetoJPEG用
typedef WORD (__stdcall *LPFUNC_1)
(
	LPCTSTR bmpf,
	LPCTSTR jpgf,
	BYTE Value,
	short Prgrs
);

#define TARGET_DLL "SaveJPG.dll"

int main(int argc, char* argv[])
{

	HINSTANCE lib;

	// *******************************************
	// DLL ロード
	// *******************************************
	lib = LoadLibrary( TARGET_DLL );
	if ( lib == NULL ) {
		printf( "%s のロードに失敗しました\n", TARGET_DLL );
		return 1;
	}
	
	// *******************************************
	// DLL 解放
	// *******************************************
	FreeLibrary( lib );

	return 0;
}
  



  関数アドレスのロードテスト

  
#include "stdafx.h"
#include <windows.h>

// SavetoJPEG用
typedef WORD (__stdcall *LPFUNC_1)
(
	LPCTSTR bmpf,
	LPCTSTR jpgf,
	BYTE Value,
	short Prgrs
);

#define TARGET_DLL "SaveJPG.dll"

int main(int argc, char* argv[])
{

	HINSTANCE lib;

	lib = LoadLibrary( TARGET_DLL );
	if ( lib == NULL ) {
		printf( "%s のロードに失敗しました\n", TARGET_DLL );
		return 1;
	}
	
	LPFUNC_1 SavetoJPEG;

	// *******************************************
	// 関数アドレスのロード
	// *******************************************
	SavetoJPEG = (LPFUNC_1)GetProcAddress( lib, "SavetoJPEG" );
	if ( SavetoJPEG == NULL ) {
		FreeLibrary( lib );
		printf( "%s\n", "SavetoJPEG のアドレスの取得に失敗しました");
		return 1;
	}

	FreeLibrary( lib );

	return 0;
}
  



  実行テスト

  
#include "stdafx.h"
#include <windows.h>

// SavetoJPEG用
typedef WORD (__stdcall *LPFUNC_1)
(
	LPCTSTR bmpf,
	LPCTSTR jpgf,
	BYTE Value,
	short Prgrs
);

#define TARGET_DLL "SaveJPG.dll"

int main(int argc, char* argv[])
{

	HINSTANCE lib;

	lib = LoadLibrary( TARGET_DLL );
	if ( lib == NULL ) {
		printf( "%s のロードに失敗しました\n", TARGET_DLL );
		return 1;
	}
	
	LPFUNC_1 SavetoJPEG;

	SavetoJPEG = (LPFUNC_1)GetProcAddress( lib, "SavetoJPEG" );
	if ( SavetoJPEG == NULL ) {
		FreeLibrary( lib );
		printf( "%s\n", "SavetoJPEG のアドレスの取得に失敗しました");
		return 1;
	}

	// *******************************************
	// 実行
	// *******************************************
	WORD wRet;

	LPCTSTR lpBitmap = "C:\\TEMP\\test.bmp";
	LPCTSTR lpJpeg = "C:\\TEMP\\test.jpg";
	BYTE nRate = 100;

	wRet = SavetoJPEG( lpBitmap, lpJpeg, nRate, -1 );
	printf( "%u\n", wRet );

	FreeLibrary( lib );

	return 0;
}
  










  infoboard   管理者用   
このエントリーをはてなブックマークに追加





フリーフォントWEBサービス
SQLの窓WEBサービス

SQLの窓フリーソフト

素材

一般WEBツールリンク

SQLの窓

フリーソフト

JSライブラリ