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 (記載なし)

PowerSpaceの運営は、パワーフューチャー株式会社が行っております。
Copyright © 2013 Power Future Co., Ltd.