Jumat, 18 Mei 2012

Error "unresolved external symbol CLSID_FileOpenDialog" di Visual C++

Lagi ngoding di C++ terus build project, eh tiba-tiba muncul pesan error kayak gini:


unresolved external symbol CLSID_FileOpenDialog
error LNK2001: unresolved external symbol IID_IFileOpenDialog
error LNK2001: unresolved external symbol CLSID_FileOpenDialog
  

Kalau baru lihat, mungkin langsung mikir ada yang salah sama kodenya. Padahal sebenarnya penyebabnya simpel: kamu cuma lupa masukin library yang dibutuhin.

Buat kasus ini, yang kurang adalah uuid.lib. Library ini nyimpen definisi buat CLSID dan IID yang lagi dicari linker.

Cara Beresinnya

Cukup tambahin uuid.lib ke project kamu. Bisa lewat pengaturan linker di Visual Studio, atau langsung di kode pakai pragma kayak gini:


#pragma comment(lib, "uuid.lib")
  

Setelah itu, coba build ulang project kamu. Harusnya error tadi langsung hilang.

Jadi intinya, kalau ketemu error unresolved external symbol buat CLSID_FileOpenDialog atau IID_IFileOpenDialog, jangan panik. Tinggal pastikan uuid.lib udah dilink ke project.

<< Beranda