• 締切済み

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

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

  • JJ_W
  • お礼率0% (0/1)

みんなの回答

noname#9414
noname#9414
回答No.1

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

JJ_W
質問者

補足

閲覧して頂きましてありがとうございました。 補足してみました。 もし気が付く点がありましたら、またご指導お願い致します。 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 ); }

関連するQ&A

  • C++Builderプログラム開始エラー

    C++Builder6で作成した実行ファイルとdllファイル)とを別のWindows上で動作させようとするとエラーが出ます。共有RTLDLLを使う、実行時パッケージを使って構築の両方に関して、チェックを入れたりはずしたりしていますが、解決しません。 エラーの表示は、「!プログラム開始エラー」のみです。特に、何が配布漏れなのかを知る手段を教えてください。

  • VBで使用できるDLL(SSL通信)をVC++で作成する。

    VBで使用できるDLLをVC++で作成しました。 内容は、SSL転送をWindowsで行うためのDLLです。 DLLではなくexeで作成したときはDOS窓からうまく動いたのですが、 DLLで作成をして、VBから呼んだときにエラーメッセージがでてプログラムは実行されません。 エラーメッセージは、 実行時エラー'53': ファイルが見つかりません:dll-file-name です。 エラーにはいろいろな要素があると思うのですが、 このエラーが出るか出ないかは、関数の中のSSL通信のプログラムを書くと このエラーがでます。 例>SSLeay_add_ssl_algorithms(); SSL通信の記述がなければ正常に実行されるので、この部分だけだと思うの ですが、特別な設定、記述があれば教えてください。 よろしくお願いします。

  • VB2005で作成したDLLの呼び出し方

    はじめまして、VB2005(.NET)初心者です。 現在、各プログラムを実行するためのメニュー プログラムを作成しています。 .net以前では、各プログラムをEXEで作成し API関数を利用し、メニューより実行させて いましたが、今回、各プログラムをEXEではなく dllで作成し実行する方法で作ることになりました。 各プログラムのdllを実行する方法がわかりません。 参考書等みてみましたが、見当たりません。 どのようにしていらっしゃるか教えて下さい。 宜しくお願いいたします。

  • 「Borland C++ Builder 5」で作成したプログラムについて

    「Borland C++ Builder 5」で作成したプログラム(コンポーネント使用)を、Builderを起動せずフリーソフトのようにWindows上で実行させるにはどうすればよいのでしょうか。

  • Cで作成したDLLをJNIから呼び出せない

    WindwosCEでC言語のDLLを作成してJNIから実行すると エラーになってしまいます。 ※C++で作成したApplicationからは呼び出せました ソールはこんな感じです・・・ ---------------------------------------------------------------- import java.util.*; public class CgiChk { public static void main(String[] args) throws Exception { System.loadLibrary("pimapi"); //既存のDll(\windows下)は読込める System.loadLibrary("TestDll");//自作のは読込めない } } 困っています。どなたか解決法のわかる方いらっしゃいますか。

  • Dllの作成について

    以下はVC++を使いました。 Dllの関数を扱うプログラムをつくる際に、dllのヘッダとlibを使う場合と、dllのみ必要な時の二種類があります。 どちらも宣言部分のみを先にプログラムに読み込ませて実装部分をプログラム実行時にexeと結びつけるんですよね。 この時どちらもdllが必要なら、上の違いによるメリットやデメリットはなんでしょうか。

  • VC++で作成したDLL呼び出しについて

    ご質問ですがVC6++で作成したDLLをVB6で呼び出すプログラムを作成し動作したのですが他のパソコンにコピーし同じフォルダ構成で保存したのですが実行時に「実行エラー'53' ファイルが見つかりません:C:\OpenCDforVB\Debug\OpenCVforVB.dll」が出てしまいます。 プログラムに何か修正をした訳ではありませんし、パソコン内の環境も大きな違いが無いと思うのですが・・!? どなたかわかりましたら宜しくお願い致します。

  • CBuilder ver6使用時にエラー

    先ほどまでエラーなく実行していたプログラムに,急にエラーが発生しました. エラー内容は 「モジュール'CC3260MT.DLL'のアドレス○○でアドレス△△に対する読み込み違反がありました」という内容です. これ以外のCBuilderで構築したプログラムは正常に動きます. どなたかご教授ください. よろしくお願いいたします.

  • 作ったDLLで一般保護エラーがでます。

    SetWindowsHookExを使って非アクティブになっているアプリケーションを キーボードによる操作できるDLLを作ったのですが、 時々DLLが一般保護エラーを起こします。 しかも常に一般保護エラーが起きるわけで無く、起きない時もあります。 発生条件は全くの不明なのです。 一般保護エラーが起きる状態の時は以下の操作をすると起きます。 1:エラーメッセージやエディタで未保存のデータの時に出てくる ダイアログボックスが表示された時。 2:エクスプローラーをアクティブにしてキーボードを押すことによって 押したキーの文字をファイル名の頭文字とするファイルへのショートカットをする際、 押したキーの文字を頭文字とするファイルが無い時 の2点が分かっています。 プログラムの概要は次のとうりです。 1:WINDOWSキー+F9~12で操作をする。 2:特定関数をアプリケーション側でタイマコントロールによる監視をし、キーボード操作の識別を行う。 3:キー識別のためにグローバル変数を使用している。 4:操作に必要なキー以外が押されていれば-1を返す。 5:DLLはBorland C++で作成し、アプリケーションはBorland C++Builder 5で作成。 です。 ソースは字数制限の関係で書けませんでした。

  • CYGWIZ.DLLのエラーについて教えて下さいm(_ _)m

    コンピュータを起動させた時に 『Explorerが原因でCYGWIZ.DLLにエラーが発生したのでExplorerを閉じます』 という文が出てきてネットが繋がらない上にたまに フリーズしてしまいます(><) 誰か分かる人がいらっしゃれば教えて欲しいので よろしくお願いしますm(__)m

専門家に質問してみよう