PB 電子会議室
発言No. | 更新日 | 題名(クリックすると発言内容と関連するコメントが表示されます) |
---|---|---|
18615 | 03/01/06 16:05:22 | VC++で作成したDLLをPB6.5で使用したい By hiroki-h |
カテゴリ:その他
日付:2003年01月06日 16:05 発信者:hiroki-h
題名: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 (記載なし)
DBMS (記載なし)
Browser (記載なし)
Server SoftWare
OS (記載なし)
DBMS (記載なし)
WebServer (記載なし)
Copyright © 2013 Power Future Co., Ltd.