QueryDosDeviceWなどのAPIを使って、特定のベンダIDとプロダクトIDをもつUSBがどのドライブに割り当てられているかの情報を取得する為に、いったんサンプルを作って、
#pragma comment(lib,"setupapi.lib")
でsetupapi.libをリンクして色々すると上手く取れたので、いざアプリに作り込もうとすると、
[ilink64 エラー] Fatal: Unable to open file 'SETUPAPI.LIB'
と言われてしまってリンクできない。
色々調べまわって結論、C++Builderで64bitアプリを作成する際にリンクするのは*.libではなくて*.aだということを忘れていました。
サンプルは32bitで、本番アプリは64bitで作ってたんです。
なので、当たり前なんだけどリンク部分を
#pragma comment(lib,"setupapi.a")
に変更すると上手くいきました。
こんなあほなことで時間を溶かす人は他にいないかもしれないですが、どなたかのお役にたてれば幸いです・・・
ちなみに解決に直接関係ないけど参考にしたサイトです。
ちゃんとsetupapi.aでリンクしてるのに上手くいかないという方はこちらのサイトを参考にするとヒントがあるかも。
http://www.cppfans.com/vcl/victorcomm/yb_comm_questions.asp