PB 電子会議室
発言No. | 更新日 | 題名(クリックすると発言内容と関連するコメントが表示されます) |
---|---|---|
18675 | 03/01/16 19:07:39 | RE(1):PB6.5: VC++にて作成したDLLをPB6.5にて使用したいのですが By coo |
18616 | 03/01/06 17:10:58 | PB6.5: VC++にて作成したDLLをPB6.5にて使用したいのですが By hiroki-h |
カテゴリ:PowerBuilderの開発環境
日付:2003年01月06日 17:10 発信者:hiroki-h
題名:PB6.5: VC++にて作成したDLLをPB6.5にて使用したいのですが
はじめまして、いつもお世話になっております。
題名のとおりVC++6.0にて作成したDLLをPB6.5にて呼び出したいのですが
呼び出し時に呼び出された側(DLL)からリターンされた際にエラーが発生します。
メッセージは「エラー R00042:実行時に要求された引数のデータ型と異なります
(関数呼び出しからのリターン時にスタックポインタが不正)」
と出ます。
いろいろと調べた結果、恐らく呼び出し規約をpascalの物を利用しないといけない
とわかりました。しかしながら、VC++6.0ではこれをサポートしていません。
PowerSoftのHPにて__stdcallを使用してくださいとありましたが
これを使用した際には、関数呼び出しエラーが発生します。
__cdeclを使用した際には、関数は呼び出せるのですがリターン時に
上記エラーが発生するという状況です。
VC++とPBに詳しい方、ぜひお力を貸していただきたいです。
----------------------------------------------------------------------
PB側の宣言
Function int mailsend(UINT hWnd , REF String szServer,REF String szTo, REF String szFrom,REF String
szSubject,REF String szBody,REF String szFile) LIBRARY \'smtp.dll\'
VC++側の宣言
int __declspec(dllexport) __cdecl mailsend(HWND hWnd, LPCSTR szServer, LPCSTR szTo, LPCSTR szFrom,
LPCSTR szSubject, LPCSTR szBody, LPCSTR szFile)
-----------------------------------------------------------------------
お忙しいとは思いますが、お願いします。
付加情報:
PowerBuilder Version (記載なし)
Client SoftWare
OS Windows98
DBMS (記載なし)
Browser (記載なし)
Server SoftWare
OS (記載なし)
DBMS (記載なし)
WebServer (記載なし)
Copyright © 2013 Power Future Co., Ltd.