• 締切済み

外部ライブラリのロード中にエラーが発生しました

OracleでDLLの関数を使用したいのですが、 タイトルのようなエラーメッセージが出てしまいます。 以下のような手順を踏みました。 (1)Listener.ora/TnsNames.oraの確認 (2)Libraryの作成  CREATE OR REPLACE LIBRARY HARU AS 'C:\test\haru.dll'/ (3)Packageの作成  FUNCTION F_HARU_CALL (haha IN BINARY_INTEGER,ruru OUT VARCHAR2) RETURN BINARY_INTEGER; (4)Package Bodyの作成  FUNCTION F_HARU_CALL (haha IN BINARY_INTEGER,ruru OUT VARCHAR2) RETURN BINARY_INTEGER IS EXTERNAL LIBRARY HARU NAME "F_HARU" LANGUAGE C CALLING STANDARD C; Object Browserで(4)を確認実行したところ タイトルのようなメッセージが出ました。 (4)をCALLする前後にデバッグ文を書いたのですが、 例外エラーのようで、後の方のデバッグ文は実行されませんでした。 解決策のアドバイスをよろしくお願い致します。

  • Oracle
  • 回答数2
  • ありがとう数9

みんなの回答

  • muyoshid
  • ベストアンサー率72% (230/318)
回答No.2

こんにちわ。 確かORACLE_HOME/bin, ORACLE_HOME/lib 以外の場所にある DLL を呼び出す場合は、listener.ora に設定が必要になった筈です。 一度listener,ora, tnsnames.ora の関連部分を提示した方が良いと思いますょ。

回答No.1

REGSVR32 C:\test\haru.dllってされました?多分、必要だと思います。もしされていましたら、聞き流してください。

関連するQ&A

  • GDライブラリについて

    いつもお世話になります。PHPで初めて円グラフ作成を行おうと思っているのですが、GDライブラリが旨く組み込まれていません。OSはwindows,PHP Version 4.3.1です。下記項目は行っています。何か足りない点などありましたらお聞かせ下さい。 1. phpiniのphp_gd2.dllのコメントをはずしました。 2. phpiniにextension_dir = c:/php/extensions/   を挿入。 3. GDライブラリをダウンロードしプロジェクトフォルダに展開。・・・・・ 実はこの部分が自信なく、インストールなど何もしていないので果たしてよいのかどうか・・・ 4. phpinfo()で内容を確認していますがgdに関するメッセージは表示されない。 よろしくお願いいたします。 因みにプログラムを実行すると Call to undefined function: imagecreate() in ... のようなメッセージが出力されるので、旨く組み込まれていないのでは無いかと判断しています。

    • ベストアンサー
    • PHP
  • 乱数のライブラリについて

    PHP5.2.4を使用しています。 小数を含む乱数を取得したい思ったのですが、そういう関数が見当たらなかったので いっそのこと、そういう機能が集まったライブラリのようなものを作ろうと思いました。 そこでフォルダの構造やクラスの分け方、メンバなどのアドバイスをして頂きたいのですが、 自分としては次のような構成を考えていて ┬ Libraryフォルダ │├Randomフォルダ ││├Abstract.php(各クラスで共通の処理) ││├Integer.php(整数の乱数、分ける目的とはいえ必要かなぁ・・・) ││├Decimal.php(小数の乱数) ││└NormalDistribution.php(正規分布の乱数) └Random.php(このファイルには何のクラスを書けばいいのか・・・そもそもこのファイルは必要?) [Integer.php] class Library_Random_Integer extends Library_Random_abstract { public function __construct($seed = false) { if ($seed !== false) { $this->setSeed($seed) } } public function Next($min, $max) { return rand($min, $max); } } [Decimal.php] class Library_Random_Decimal extends Library_Random_abstract { protected $_decimalPlace; // 最大、小数8位まで public function __construct($decimalPlace = 0, $seed = false) // これだと統一感ないなぁ・・・ { if ($seed !== false) { $this->setSeed($seed) } $this->setDecimalPlace($decimalPlace); } public function setDecimalPlace($decimalPlace) { $decimalPlace = ($decimalPlace > 8) ? 8 : $decimalPlace; $this->_decimalPlace = $decimalPlace; return $this; } public function next($min, $max) { $pow = pow(10, $this->_decimalPlace); $min *= $pow; $max *= $pow; $r = rand($min, $max); return $r / $pow; } } [NormalDistribution.php] class Library_Random_NormalDistribution extends Library_Random_abstract { public function __construct($seed = false) { if ($seed !== false) { $this->setSeed($seed) } } public function next($mu, $sigma) { $r = new DecimalRandmizer(8); $alpha = $r->Next(0, 1); $beta = $r->Next(0, 1) * pi() * 2; $boxMuller1 = sqrt(-2 * log($alpha)); $boxMuller2 = sin($beta); return $sigma * ($boxMuller1 * $boxMuller2) + $mu; } } 使用例 $r = new Library_Random_NormalDistribution(time()); print $r->next(10, 5); .NETのSystem.RandomのNextDouble()メンバのように いちいちクラス分けしなくてもこの例ならNextNormalDistribution()のように 一つのクラスに追加していく形でもいいのかもしれませんが限界がありそうなので こういう構造にしたのですが、自分ならこうするとかここがおかしいとか何でもいいのでアドバイスを頂けないでしょうか?

    • ベストアンサー
    • PHP
  • DLL作成で外部参照エラー?

    VC歴1週間です。 現在VC++2010で動的ライブラリ(DLL)を作ろうとしていますが、 作成しようとしているDLL内部で使用している関数がLIB提供されていません。 このような場合、win32プロジェクト→dll作成 を選択した状態でプロパティ変更しないで、 DLLを作ろうとするとその関数が外部参照エラーになるかと思います。 このような場合、/FORCEで強制出力してしまって良いものでしょうか? それともVC++側の設定でエラーにならずDLL生成ができるようになるものでしょうか? linuxなら cc -shared -o foo.so foo.c でライブラリ等何も気にせずシェアードライブラリが作れたので困惑しています。 よろしくご教示お願いいたします。

  • VBからのDLL呼び出しでエラー発生

    お世話になります。 Cで作成したDLLをVB6から呼び出した時にエラーが発生します。エラー内容は「実行時エラー'49'DLLが正しく呼び出せません。」です。 いろいろ試してみると、DLL側にパラメータを指定した場合にエラーが発生しているということが分かったのですが、対処方法は分かりませんでした。 以下にソース内容を記述致しますので、何処が悪いのかをご指摘頂けませんでしょうか。 <DLL側(aaa.dll)> __declspec(dllexport) int MyFunction1() { return 4; } __declspec(dllexport) int MyFunction2(int x) { return x * 2; } <VB側> 共通.bas Public Declare Function MyFunction1 Lib "aaa.dll" () As Long Public Declare Function MyFunction2 Lib "aaa.dll" (ByVal a As Long) As Long 実際の使用箇所 Dim param As Long Dim returnCode As Long MsgBox MyFunction1() param = 3 MsgBox MyFunction2(param) どうぞ宜しくお願い致します。

  • [VB]ライブラリの関数が使えません

    お願いします. 現在,メーカーの計測器についているライブラリ(dll)を利用して,測定ソフトを試作しようとしています. 仕様書ではライブラリはC言語で書いてあるようですが,自分はVB.NETでソフトを作ろうと思っています. しかし,うまく関数を使うことができず,現在停滞ています(><; 以下にソースを示しますので,どなたか問題点をご指摘いただけないでしょうか? >>ライブラリ(仕様書) int send_cmd( WORD CmdSize, void *CmdPacket ) //WORD:符号なし64ビット //CmdSize:送信パケットサイズ(Byte) //CmdPacket:送信パケット >>VB.NET(自作) Public Declare Function send_cmd lib "test.dll" (ByVal CmdSize as ULong, ByRef CmdPacket as Byte() ) as integer Dim Test_Packet(a) as Byte res = send_cmd(Test_Packet.length, Test_packet) //Test_Packet : 送信用パケットのダンプ ***結果 res の値が仕様書の"dllの内部エラー"の値でした.

  • スタティックライブラリファイル作成時のデバッグセッションの実行可能ファイル

    VisualC++2008ExpressEditionを使用しています。 スタティックライブラリファイルを作成しようとしているのですが、コンパイルしようとすると、「デバッグセッションの実行可能ファイル」というタイトルのウィンドウが現れ、「デバッグで使用する実行可能ファイル名を指定して下さい。」と出てきます。 libファイルはdllと違いコンパイル時に読み込まれてしまうため、テストしたかったら、EXEファイルをコンパイルして作り直さないといけないと思うのですが、ここでいうデバッグで使用する実行可能ファイルとは、どの様なファイルを指しているのでしょうか? 宜しくお願いします。

  • VB2010でPC-OP-RS1を読み出すとエラー

    PC-OP-RS1をカスタム利用するDLL、pc-op-rs1-control.dllをVB2010から利用しようとしています。 PC-OP-RS1 - PukiWiki http://1c3.world.coocan.jp/wiki/index.php?%A5%B3%A5%F3%A5%C8%A5%ED%A1%BC%A5%EBDLL%A4%F2%BA%EE%A4%ED%A4%A6 しかし、宣言での引数の指定の仕方が悪いらしく、エラーが出てしまいます。 こちらも参考にしてみました。 http://okwave.jp/qa/q4511807.html このDLLをモジュールで以下のように宣言をして読み出しています。 Public Declare Function remo_close Lib "pc-op-rs1-control.dll" _    Alias "Close" () As Integer closeのように、引数の無いものはうまくいくのですが、引数のある読み出し、例えばOPENを Public Declare Function remo_open Lib "pc-op-rs1-control.dll" _ Alias "Open" (ByVal port As Int32) As Integer このように宣言して  ans = remo_open(1) のように使用すると、 WindowsApplication1.Module1::remo_open' がスタックを不安定にしています。PInvoke シグネチャがアンマネージ ターゲット シグネチャに一致していないことが原因として考えられます。呼び出し規約、および PInvoke シグネチャのパラメーターがターゲットのアンマネージ シグネチャに一致していることを確認してください。 とエラーが出てしまいます。 Int32が悪いかと思い Int16、Int64、UInt32、UInt16、UInt64、Integer、UInt、ByValをByRefにと試してみましたが同様でした。 DLLのソース(C++)では以下のように宣言されています。 PCOPRS1CONTROL_API PCOPRS1CONTROL_RET Open(int port_no) { return(ConvertErrorsFromDevPcoprs1(dev.DEV_Open(port_no))); } 唯一エラーが出なかったのが、 Public Declare Function remo_open Lib "pc-op-rs1-control.dll" _ Alias "Open" () As Integer でした。 どなたか、間違いと思われる部分がわかる方、ご指摘をお願いいたします。

  • oracle ファンクションの実行

    oracleでファンクションを作成しております。 このファンクションをVisualBasicより実行しているのですが、 以下のエラーが出力される状況です。 ORA-06550: 行1、列8: PLS-00553: キャラクタ・セット名が認識されません。 ORA-06550: 行0、列0: どのように対処すれば良いか分らず、 どなたか分る方がいらっしゃればご教授頂けますと 幸いです。 ★作成したファンクション CREATE OR REPLACE FUNCTION HINODE.H_HND8010U ( p_in_yoyakuid in varchar2) RETURN varchar2 --********************************************************* --* □ プロシージャ名 --* H_HND8010U --********************************************************* IS vSum varchar2(10); BEGIN vSum := p_in_yoyakuid; RETURN vSum; END; /

  • VC.NET(C#)のクラスライブラリをBCB(C++)で使用したい

    タイトルにあるように、 VC.NET(C#)のクラスライブラリを作成したのですが、 BCB(C++)での使用方法がわかりません。 BCBでプロジェクトに追加で、Dllを追加するのだろうと言うのは わかったのですが、 ソース上で、Dllをどのように呼び出したらよいのかわかりません。 Dllをプロジェクトに追加する以前に、何かしなくてはならないことがあるのでしょうか? よろしくお願いいたします。

  • vb2008でのクラスライブラリ実行に関して

    vb2008でのクラスライブラリ実行に関しての質問なのですが、 クラスライブラリで以下の内容のプロジェクトを作成しました。 プロジェクト名:TEST ファイル名:TEST1.vb '~プログラム内容~ Module D01001B Public Function Main(ByVal CmdArgs() As String) As Integer     'バッチの処理内容 End Function End Module このバッチをデバックしたいのですが、どうやらクラスライブラリは 単体ではデバックできないらしくどうすればできるのか困っています。 調べてみると新しいプロジェクトでWindowsフォームアプリケーション を選択し、フォームからボタンを押して実行する方法があるとの ことなのですがどのように記述したらよいかわかりません。 できればどのように記述すれば実行(呼び出し)できるのか教えていただけないでしょうか? 以上