PB 電子会議室
発言No. | 更新日 | 題名(クリックすると発言内容と関連するコメントが表示されます) |
---|---|---|
16308 | 01/09/21 21:59:42 | RE(11):BSTR(UNICODE)変換:PB版 By ryochan |
16307 | 01/09/21 20:05:35 | RE(10):BSTR(UNICODE)変換:PB版 By GO |
16285 | 01/09/19 10:27:56 | RE(9):BSTR(UNICODE)変換:PB版 By ryochan |
16284 | 01/09/19 01:15:55 | RE(8):BSTR(UNICODE)変換(2)の訂正(2) By GO |
16275 | 01/09/18 12:48:36 | RE(7):BSTR(UNICODE)変換(2)の訂正(2) By ryochan |
16268 | 01/09/16 21:00:17 | RE(6):外部関数・・・BSTR(UNICODE)変換(2)の訂正 By ryochan |
16267 | 01/09/16 13:12:50 | RE(5):外部関数・・・BSTR(UNICODE)変換(3) By ryochan |
16266 | 01/09/16 13:08:10 | RE(4):外部関数・・・BSTR(UNICODE)変換(2) By ryochan |
16265 | 01/09/16 13:06:52 | RE(3):外部関数・・・BSTR(UNICODE)変換(1) By ryochan |
16264 | 01/09/14 19:10:31 | RE(2):PB7.0: 外部関数について By GO |
16263 | 01/09/14 18:33:38 | RE(1):PB7.0: 外部関数について By ryochan |
16260 | 01/09/14 17:23:22 | PB7.0: 外部関数について By GO |
カテゴリ:スクリプトの記述
日付:2001年09月18日 12:48 発信者:ryochan
題名:RE(7):BSTR(UNICODE)変換(2)の訂正(2)
前回のコードで、環境により各関数の戻り値が正常
に返却されない場合もありましたので、確実な方法
を書きます。
もしかしたら、GOさんのところもそうだったのかも
しれません。
関数宣言が丁度,間違ってました(すみません)が、
その引数を使用します。
__declspec(dllexport) int WINAPI ReceiveDataA(short int No, LPTSTR STS,
int STSsize,LPTSTR DATA, int DATAsize)
{
略(前述と同じ)
//取得したデータをASCIIに変換して戻す
// 変換
int nLenSTS = WideCharToMultiByte(CP_ACP, 0, bstrSTS, STSsize,
STS, STSsize, NULL, NULL);
int nLenDATA = WideCharToMultiByte(CP_ACP, 0, bstrDATA, DATAsize,
DATA, DATAsize, NULL, NULL);
// 終端のヌル文字設定は必要なし。
return 1;
}
PB側はblobではなく、固定長文字列でもOKでした、
function long ReceiveDataA(long No, ref char STS[1024],long STSsize,ref char DATA[1024],long
DATAsize) library \"Pcard.dll\"
char c_STS[1024],c_DATA[1024]
c_STS = \"aaa\"
c_DATA = \"bbb\"
ReceiveDataA(0, c_STS, 1024, c_DATA, 1024)
messagebox(\"\",c_STS + \"~r~n\" + c_DATA)
1024バイトはあくまでも目安です。適当に設定してください。
NT,98SEで動作確認しています。
私も勉強の為回答しているので、できれば今の状況も
教えてください(って書いても、見てくれなきゃ意味がないか)。
付加情報:
PowerBuilder Version (記載なし)
Client SoftWare
OS Windows NT 4.0
DBMS Oracle SQL*Net 8
Browser (記載なし)
Server SoftWare
OS (記載なし)
DBMS Oracle 8.0
WebServer (記載なし)
Copyright © 2013 Power Future Co., Ltd.