ホーム   フォーラム   FAQ
 
メインメニュー
ログイン
ユーザー名:

パスワード:


パスワード紛失

APIのコールについて

  • このフォーラムに新しいトピックを立てることはできません
  • このフォーラムではゲスト投稿が禁止されています
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 .2 .3 .4 .5 .6 | 投稿日時 2015-3-11 14:27
katura  新米   投稿数: 19
PC-FAXを行うAPIをメーカー様より提供いただいたのですが
最初のコール方法で躓いております。
ifxapi64.dllが当該ファイルなのですが
セットアップによりsystem32フォルダに入っている状態で
1.外部コール・UDPにて'@ifxapi64.ifxopenex'
 パラメータにて'14'、使用プリンタ名、ハンドラ
2.ハンドラを項目更新にてcalldll('@ifxapi64.ifxopenex','14',使用プリンタ名)

の2パターンを試しているのですがどちらも「ユーザモジュールが見つかりません.」となります。

わかる方ご教授いただけませんでしょうか。
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2015-3-11 15:50
TKitabayashi  一人前   投稿数: 90
@を取り除くとうまくいくような気がします。

外部コール・UDPで'ifxapi64.ifxopenex'にするといいと思います。

私はCallDll関数で成功したことがないので「2」の方はわかりませんが、もしからしたら@を取り除くだけでうまくいくかもしれません。
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2015-3-11 15:58
katura  新米   投稿数: 19
投稿ありがとうございます。

@を除いた形でも試してはいるのですが現象は同じなのです。
モジュールが見えないのか?とも思いUNIPAASのフォルダに
コピーしても同様でした。

何か根本的なところで間違ってる気がするのですが。。
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2015-3-11 17:07
TKitabayashi  一人前   投稿数: 90
edpファイルがあるフォルダにDLLファイルを置いてみてはどうでしょうか?
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2015-3-11 17:26
katura  新米   投稿数: 19
@有り、無し および UDPとCALLDLL
それぞれの組み合わで試してみましたが
現象変わらずです。
PATHを入れてみたりもしているのですが
変化ないです。
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2015-3-11 17:48
TKitabayashi  一人前   投稿数: 90
「ユーザモジュールが見つかりません.」となっているので、やはり、DLLファイルを見つけられていないのだと思います。

system32、uniPaaSのインストールフォルダ以外にDLLファイルを置いてみるといいと思います。

候補に挙げられるのは、
・edpファイルがあるフォルダ。
・論理名WorkingDirが指しているフォルダ。
などです。

V1Plusだと同じフォルダを指していました。

私も、最近このような状況に遭い、
・edpファイルがあるフォルダにDLLを置く。
・外部コールのUDPに指定するとき@はつけない。
で解決しました。

外部コールのUDPに@を指定したら、Magicが強制終了になりました。
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2015-3-11 18:58
katura  新米   投稿数: 19
貴重なお時間と情報ありがとうございます。

ファイルの場所をいくつか変えて試してみてます。
が、エラーメッセージがまったく変化ないので
他のAPIのコールも試してみます。
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2015-3-16 17:30 | 最終変更
mokomoko101  常連 居住地: 大阪  投稿数: 53
こんにちは。
ちょっと試していただけますでしょうか。
1.該当のdllを作業フォルダに置く。
2.外部コール U=UDPにて、dllのコールの記述を
"dllのパス"&"dll名.関数"で記述
@が必要な場合、"@"&"dllのパス"&"dll名.関数"の記述で。
※上記の記述の通りであれば、dllのパスは論理名も使用できます。

ex)論理名%\SYS%にあるAdvZip.dllのGetZipDecision関数の場合
⇒"@%\SYS%AdvZip.GetZipDecision"と記述する

お願いします。
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2015-3-19 15:54
katura  新米   投稿数: 19
ご回答ありがとうございます。
最終的に32bitOSの環境を作成し、32bit用のdllを試したところ
呼び出すことができました。
・calldllではPATHの記述は不要でしたが
 外部コールUDPでは必要でした。
お二方 感謝いたします。
投票数:0 平均点:0.00

  条件検索へ


Copyright (C) Magic Software Japan K.K. All Rights Reserved.
個人情報保護方針 会員規約