- 469 名前:光速エスパー世代774RR mailto:sage [2007/06/15(金) 17:35:48 ]
- すまない、俺が完全にタトしてたようだ orz
fpcディレクトリの.pas、.incファイルをなめてみたんだけど、MSG_NOSIGNAL が使われているのは IdStackLinux.pas と IdStackUnix.pas の中だけで、 コンパイルされてエラーを吐くのは後者だね。 試しに適当な値を代入してやるとコンパイルする(fpc 2.1.4、PPC-Tiger)。 Result := fpRecv(ASocket, @ABuffer, ABufferLength, AFlags or Id_MSG_NOSIGNAL); になってるけど、確かにWindows版? のスタックIDは Result := Recv(ASocket, ABuffer, ABufferLength, AFlags) で、const MSG_NOSIGNAL = 0 としたのと等価だ。 さて、ここがコンパイルできても次のエラーで止まる。 idSSLOpenSSL.pasの 687行目の Result := CurrentThreadId; (* どうでもいいけど、このセミコロンはいらない。俺は断固付けない派 *) で型が違う(ポインタが代入された)ってエラーを吐くんだな。強引にlongintに型キャストするとコンパイラは通る。 CurrentThreadIdはTidThreadId型を返す関数なんだけど、TidThreadIdはidGlobal.pasでlongwordに定義されているはずなので何か変だ。 つうんでちょっと弄るとコンパイルはできるけど、走るのかこれw fpcsrcの再構築って、どこに書いてあったの? Lazarus つうか FreePascal から外部ライブラリを呼べるよ。libcを呼んだり、Carbon.frameworkとリンクしたりする例がどっかにあった。
|

|