OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
締切り
済み

BC++Builderで作成したDLLをBC++で使用した時エラーが

  • 困ってます
  • 質問No.100783
  • 閲覧数142
  • ありがとう数2
  • 気になる数0
  • 回答数1
  • コメント数0

お礼率 0% (0/1)

BC++Builder5で作成したDLLを、BC++5.02Jで作成するプログラムで使用した時にエクスプローラなどで実行した時には正常なのですが、他プログラム中からShellExecuteなどで起動させた時にLoadLibraryでDLLアドレス例外処理が発生してしまう。なぜだか解る人いませんか?DLLの作成方法が悪いのでしょうか? ちょっと煮つまってしまいました(-_-;)
通報する
  • 回答数1
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

回答 (全1件)

  • 回答No.1

DLLはどこに置いているのでしょうか? きちんとSystem(32)ディレクトリにおいてある のでしょうか? 補足してください。たぶんそちらの方が的確な 回答が付くと思いますよ。 #もう少し環境を詳しくね・・・ ではでは☆ ...続きを読む
DLLはどこに置いているのでしょうか?
きちんとSystem(32)ディレクトリにおいてある
のでしょうか?

補足してください。たぶんそちらの方が的確な
回答が付くと思いますよ。
#もう少し環境を詳しくね・・・

ではでは☆
補足コメント
JJ_W

お礼率 0% (0/1)

閲覧して頂きましてありがとうございました。 補足してみました。 もし気が付く点がありましたら、またご指導お願い致します。

OS:WIN98SE
言語:BC++Builder5 (使用し始めてまだ数週間)
   BC++5.02J (OWL/WIN32を用いてここ数年愛用)
目的:BC++には無いJPEG伸張/圧縮処理が欲しく、BC++BuilderのJPEGの機能をDLL化。

※ 下記に一部抜粋

● BC++Builder (C:¥WINDOWS¥SYSTEM¥JPEG_DLL.DLL)

#include <vcl.h>
#include <windows.h>
#include <graphics.hpp>
#include <jpeg.hpp>
#pragma hdrstop
#pragma argsused
int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void* lpReserved)
{ return 1;
}
extern "C" __declspec( dllexport ) void __stdcall jpg_to_bmp( char *j_path, char *b_path );
void __stdcall jpg_to_bmp( char *j_path, char *b_path )
{ TJPEGImage *jp;
Graphics::TBitmap *bp;

jp = new TJPEGImage();
bp = new Graphics::TBitmap();

jp->LoadFromFile( j_path );

bp->Assign( jp );
bp->SaveToFile( b_path );

delete bp;
delete jp;
}

● BC++ (C:¥JPEG_VIEW¥JPEG_VIEW.EXE)

extern "C" __declspec( dllimport ) void _stdcall jpg_to_bmp( char*, char* );
void ( PASCAL *b_JpgToBmp )( char *j_path, char *b_path );

HINSTANCE jpegLIB;

void DLG01_Inp::SetupWindow()
{ TDialog::SetupWindow();
jpegLIB = LoadLibrary( "Jpeg_dll.dll" );
if ( (unsigned)jpegLIB <= HINSTANCE_ERROR ) TDialog::CloseWindow();
b_JpgToBmp = ( void ( PASCAL * )( char*, char* ) )GetProcAddress( jpegLIB, "jpg_to_bmp" );
}
void DLG01_Inp::CleanupWindow()
{ TDialog::CleanupWindow();
FreeLibrary( jpegLIB );
}

● BC++ (C:¥JPEG_TEST¥JPEG_TEST.EXE)

void DLG01_Inp::ev_button01()
{ ShellExecute( HWindow, "open", "c:\\jpeg_view\\jpeg_view.exe", NULL, NULL, SW_SHOWNORMAL );
}
投稿日時 - 2001-07-07 15:30:33
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ