在使用动态链接库时出差!
本人在编译动态链接库没有错误,在使用时出差,请问各位高手有什么解决办法?
动态链接库内容如下:
typedef struct TrackInfo
{
int length;//轨道长度
AnsiString Text;//任何文字
AnsiString Name;//轨道名称
AnsiString SongText;//歌词
AnsiString TagName;//标签
AnsiString TrackMusicName;//轨道乐器名
AnsiString CopyRightText;//版权名称
AnsiString Note;//音符
}TrackInfo;
extern "C" __declspec(dllexport) __stdcall void ReadTrackInfo(char *FileName,DynamicArray<TrackInfo> trackinfo);
void __stdcall ReadTrackInfo(char *FileName,DynamicArray<TrackInfo> trackinfo)
{
iMidi *midi=new iMidi();
midi->MidiFileName=AnsiString(FileName);
midi->ReadMidiFileInfo();
midi->ReadTrackInfo();
for (int i=0;i<=midi->TrackNUM;i++)
{
trackinfo[i].length=midi->iTrackInfo[i].length;
//ShowMessage(trackinfo[i].length);
}
delete midi;
}
使用时出错:
void (__stdcall *ReadTrackInfo)(char *FileName,DynamicArray<TrackInfo> trackinfo);
HINSTANCE DLLInst1;
DLLInst1 = LoadLibrary("iMidi.dll"); //上面的 Dll
ReadTrackInfo = (void (__stdcall*)(char *FileName,DynamicArray<TrackInfo> trackinfo)) GetProcAddress(DLLInst1,"ReadTrackInfo");
DynamicArray<TrackInfo> tinfo;
tinfo.Length=info1.TrackNum;
ReadTrackInfo(OpenDialog->FileName.c_str(),tinfo);//出错点
Edit2->Text=tinfo[1].length;