掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
DLLでBmpのサイズとピクセル列を引き渡すには? (ID:8678)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
何度もすみません。 こんな感じで作ってみました。 #include<windows.h> #include <stdio.h> #include <malloc.h> #include <string.h> // 関数のプロトタイプをtypedefを使って定義します。 typedef int (*pload)(LPCSTR filename, char* buf); int jpeg2bmp(const char *OpenName,const char *SaveName); int main(int argc,char *argv[]) { jpeg2bmp("C:\\tfijpeg1.jpg", "C:\tifbmp1.bmp"); return 0; } int jpeg2bmp(const char *OpenName,const char *SaveName) { FILE *AStream; LPCSTR filename; // 関数ポインタを定義 pload pl; HINSTANCE hInst = LoadLibrary("jload.dll"); if (hInst == NULL){ return false; } //関数アドレスを設定 pl=(pload)::GetProcAddress(hInst,"load"); if (pl == NULL) { FreeLibrary(hInst); return false; } int size = pl(filename, ""); if( size != 0) { char* buf = (char*)malloc(size); pl(filename, buf); free(buf); } // 最後にライブラリをアンロード FreeLibrary(hInst); return (0); } 上記のソースでは、int size = pl(filename, ""); でハンドルエラーが出ます。 >__stdcall(もしくはWINAPI)の宣言をしていますか? >extern "C"していますか?これがないと、C++の名前空間の影響を受けます。 extern "C" __declspec(dllimport) 上記のライブラリの作業を行うと、外部参照は未定義とかきかれました。 何度もすみませんがご教示お願いいたします。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.