私が確信している愚かな質問は、正しくない構文です。値を返す関数で dlsym を動作させるにはどうすればよいですか? 次のコードで「無効な void* から LSError (*)() への変換」というエラーが表示されます。Linux の lightscribe サンプル プログラムをコンパイルして、OSX の dylib にリンクできることを期待しています (なぜ勝ったのか)。 'HP は実際の Cocoa SDK をリリースしていませんか? LS が登場してからわずか 6 年か 7 年ですか?):
void* LSHandle = dlopen("liblightscribe.1.dylib", RTLD_LOCAL|RTLD_LAZY);
if (LSHandle) {
LSError (*LS_DiscPrinter_ReleaseExclusiveUse)() = dlsym(LSHandle, "LS_DiscPrinter_ReleaseExclusiveUse");
..
lsError = LS_DiscPrinter_ReleaseExclusiveUse( pDiscPrinter);