文档介绍:软件开发技术
专业:检测技术及自动化装置
题目:
一.,并将该函数以动态链接库形式进行导出,并写一个基于对话框",dest[i]);
split(dest[i]," ",dest2,&num2);
for (j=0;j<num2;++j)
{
printf("|%s|\n",dest2[j]);
}
}
return 0;
}
3.分割字符串函数以动态链接库DLL形式进行导出,以一个基于对话框的程序进行测试
新建Win32 Dynamic-Link Labrary,名称split3
建立一个简单的工程,其余默认,完成。
添加函数
#define EXPORT __declspec(dllexport)
extern "C" EXPORT void __stdcall split(char *src, const char *separator, char **dest, int *num)
;
3.在源文件Source
LIBRARY
EXPORTS
split = split
Files中添加分割函数
void __stdcall split(char *src, const char *separator, char **dest, int *num)
{
char *pNext;
int count = 0;
if (src == NULL || strlen(src) == 0) return;
if (separator == NULL || strlen(separator) == 0) return;
pNext = strtok(src,separator);
while(pNext != NULL)
{
*dest++ = pNext;
++count;
pNext = strtok(NULL,separator);
}
*num = count;
}
6..点击Microsoft Visual C++ ,新建MFC AppWizard(exe),工程名称split4,选择基本对话框,完成。创建对话框。
,建立类导向,将IDC_EDIT1和IDC_EDIT2分别添加成员变量,并命名为m_edit1和m_edit2,OK。
typedef int (_stdcall* funspliter)(char *src, const char *separator, char **dest, int *num);
CSplit4Dlg::OnButton1()中添加完整的加载DLL,调用DLL中的导出函数,显示在对话框,卸载DLL的函数,之后编译。
HMODULE hMod=LoadLibrary("");
if (hMod !=NULL)
{
funspliter showspliter;
showspliter = (funspliter)GetProcAddress(hMod,"split");
if (showspliter)
{
char src[100];
//="tttttttttttt*uuuuuuuuuuuuuu" /*(char *) (0)*/;
UpdateData(TRUE);
int strLength1 = ()+1;
//char chArray[100];
memset(src,0, sizeof(bool) * 100); //将数组的垃圾内容清空.
strncpy(src, m_edit1, strLength1);
char *dest[128];
char *dest2[128];
int num = 0, num2 = 0;
int i, j;
char ddd[100];
Upda