特許の話ではないのですが、プログラムの板なので、くわしい方がおられるかと思い
伺いたいのですが、
24 bit color bmp でファイルを書き出すとサイズが大きくなるので、jpeg62.dll が
インストールしてあれば、jpeg にして書き出すようにしようとしています。
dll を直接呼び出して必要な関数を GetProcAddress() で取り出して、実行していますが、
最初の jpeg_write_scanlines() で、エラー(RaiseCriticalSection)に落ちてしまいます。
関数の呼び出しは、libjpeg.txt に書いてある通りで、ソースファイル拡張子は .cpp です。
コンパイラは、VC++ 6.0。jconfig.h はいじっていません。
なにか、単純なことが抜けているのでは思いますが、お教え下さい。
因みに、
typedef JMETHOD(JDIMENSION, t_jpeg_write_scanlines, (j_compress_ptr cinfo, JSAMPARRAY scanlines, JDIMENSION num_lines));
として、
t_jpeg_write_scanlines p_jpeg_write_scanlines;
でポインタ格納先を取り、
if ((p_jpeg_write_scanlines= (t_jpeg_write_scanlines)GetProcAddress(hDll, "jpeg_write_scanlines" )) == NULL) goto done;
で、ポインタを取り、while () loop の中で
(*p_jpeg_write_scanlines)(&cinfo, row_pointer, 1);
を実行しています。