喫茶XRAYトップページ

[スレッド全体
]

[12321] Re:別プロセスのメッセージを捕捉返信 削除
2018/9/22 (土) 07:35:43 SO
▼ Mr.XRAYさん
> [DLL上の例外をコピーした文字列をFreeLibraryにアクセスとエラーになる]
> http://madia.world.coocan.jp/cgi-bin/DelphiBBS/wwwlng.cgi?print+201809/18090005.txt


そもそも、お作法的にバグのような。。。

あと、StrPCopyでエラーにならないって、まぁいいですけど(たまたまだし)、
StrPCopy自体がNULL終端を期待しての動作なので、
void *memcpy(void *buf1, const void *buf2, size_t n);
みたいに、サイズ指定があるものを使用したほうがいいですよね。

通りすがりさんが書いている、「要はWin32APIのような作りにする、ということです。」で分かって欲しいような。

[12323] DLLにおけるエラーおもらし禁止条項返信 削除
2018/9/22 (土) 10:40:45 taka
▼ SOさん
> ▼ Mr.XRAYさん
> > [DLL上の例外をコピーした文字列をFreeLibraryにアクセスとエラーになる]
> > http://madia.world.coocan.jp/cgi-bin/DelphiBBS/wwwlng.cgi?print+201809/18090005.txt
>
> そもそも、お作法的にバグのような。。。


Delphi付属のマニュアル本に掲載されていたような記憶があったので
ヘルプを探してみました

開発者ガイド: Delphi プログラマーズガイド

パッケージと DLL の作成
> DLL とライブラリは,Windows ダイアログでエラーや警告が表示されるのを防ぐために,
> すべての例外を処理する必要があります。


http://docs.embarcadero.com/products/rad_studio/radstudio2007/RS2007_helpupdates/HUpdate4/JA/html/devwin32/idh_creatingpackagesanddlls_xml.html


C++
Docs > Visual C++ > ドキュメント > 並列プログラミング
ランタイムによってスローされた例外
> ランタイムの呼び出しから例外が発生する可能性があります。
> ...
> プログラミング エラーを診断する必要がある場合にのみ、
> 回復不能なエラーをアプリケーション コードでキャッチまたは処理することをお勧めします。
> ...
> アプリケーションの異常終了を防ぐために、コードでランタイムを呼び出す場合は例外が処理されるようにしてください。



[12325] Re2:別プロセスのメッセージを捕捉返信 削除
2018/9/22 (土) 16:52:31 Mr.XRAY
> そもそも、お作法的にバグのような。。。

御意 !!

> あと、StrPCopyでエラーにならないって、まぁいいですけど(たまたまだし)、

御意 !!
以下「御意 !!」になってしまう可能性があるので省略 (笑)
taka さんがヘルプを調べてくださっていますね.
お疲れ様です.
AAA さんも,こういうことを確認,調べる機会を与えてくれた,
ということで感謝しましょう !?

# SO さんと tata さんの書き込みがもったいないから,某掲示板にレスしようかな ?


[12334] Re3:別プロセスのメッセージを捕捉返信 削除
2018/9/22 (土) 17:52:06 SO
▼ Mr.XRAYさん

御意 !!w

え〜、少し質問ですけど、
DelphiでDLLとの文字列のやり取りって、
Stringクラス(型?)を使うのがスタンダードなんですか?

--
C,C++でWin APIだと、戻り値でエラーの場合、
GetLastErrorを使っていました(^^;A

https://msdn.microsoft.com/ja-jp/library/cc428944.aspx



[12337] Re4:別プロセスのメッセージを捕捉返信 削除
2018/9/22 (土) 18:02:27 Mr.XRAY
▼ SOさん

> DelphiでDLLとの文字列のやり取りって、
> Stringクラス(型?)を使うのがスタンダードなんですか?


えっ !? そうなんですか ?
Null 終端文字列じゃなかったかしら ?
私また変なこと書きました ? DLL が別プロセスで実行とか (笑)

> C,C++でWin APIだと、戻り値でエラーの場合、
> GetLastErrorを使っていました(^^;A


えっ !?
GetLastError でいいと思うのですが...
何か問題でも.


[12339] Re5:別プロセスのメッセージを捕捉返信 削除
2018/9/22 (土) 18:15:11 Mr.XRAY
> Null 終端文字列じゃなかったかしら ?
>私また変なこと書きました ? DLL が別プロセスで実行とか (笑)


サイトの記事には Null 終端文字列を使うべきと書いています ! (キッパリ)


[▼次のスレッド]
INCM/CMT
Cyclamen v3.82