【发布时间】:2011-05-16 12:10:51
【问题描述】:
我正在尝试将一个简单的 .mp3 文件添加到 iTunes 库,但是当我调用 AddFile() 时,我的程序不断崩溃。但是,当我调用 get_Tracks() 时,它返回一个有效指针,所以我认为指向 IITLibraryPlaylist 的指针是有效的。我做错了什么?
IiTunes* p_iTunes;
IITLibraryPlaylist* p_Library;
IITOperationStatus* status;
IITTrackCollection* iTrackCollection;
CoInitialize(0);
if (FAILED(CoCreateInstance(CLSID_iTunesApp, NULL, CLSCTX_LOCAL_SERVER, IID_IiTunes, (PVOID *)&p_iTunes))){
p_iTunes->Release();
CoUninitialize();
}
else{
p_iTunes->get_LibraryPlaylist(&p_Library);
p_Library->get_Tracks(&iTrackCollection); // This works, so I suppose p_Library is valid..
long trackCount = 0;
iTrackCollection->get_Count(&trackCount);
p_Library->AddFile(L"C:\\asd\asd.mp3",&status); // crashes here
}
【问题讨论】:
-
顺便说一句,您错误处理错误。如果
CoCreateInstance()失败,p_iTunes将为 null,因此调用Release()将使您的程序崩溃。