在VC中的声明
定义接口
typedef class TStringListIntf
{
public:
virtual int _cdecl Add(const char *S) { return 0
};
virtual void _cdecl Clear(void) { return ;};
virtual void _cdecl Delete(int Index) { return ;};
virtual void _cdecl Exchange(int Index1, int Index2) { return ;};
virtual int _cdecl IndexOf(const char *S) { return 0;};
virtual void _cdecl Insert(int Index, const char *S) { return;};
virtual char* _cdecl Strings(int Index) { return "";};
virtual void _cdecl Sort(void) { return ;};
virtual void _cdecl SaveToFile(const char *filename) { return
};
virtual void _cdecl LoadFromFile(const char *filename) { return;};
virtual char* _cdecl GetText() { return "";};
virtual void _cdecl SetText(const char *text) { return;};
} *PStringListIntf;
typedef PStringListIntf(_stdcall *CreateStringList)(void);
typedef void(_stdcall *FreeStringList)(PStringListIntf SL);
定义全局变量(相对来说的,可以放到使用StringList的类或函数中)
TStringListIntf *m_StringList;
HINSTANCE m_DllHandle;
// 加载动态连接库
m_DllHandle = LoadLibrary("D://vcdelphi//dll//Project2.dll"
// 文件是例子,你指定为你的dll文件即可
if (m_DllHandle)
{
CreateStringList _stdcall proc;
proc = (CreateStringList)GetProcAddress(m_DllHandle, "CreateStringList"
m_StringList = proc()
//创建StringList对象
}
// 使用StringList
m_StringList->Add("abc"
;
m_StringList->SaveToFile("d://rere.txt"
;
// 在不是用StringList要调用dll中的FreeStringList释放内存,这个不用说了吧
上面的代码测试通过,其他的功能还没有是过,不过我写上的应该不会有什么问题
如果你还要用到StringList的其他功能,你就照猫画虎吧