VC++6.0如何在MFC中输出字符串

时间:2023-01-03 09:30:08
DLL.cpp里面有段函数
#include<stdio.h>

_declspec(dllexport) void get()
{
FILE *f;   //获得文件的第一行
char s[256];
f=fopen("c:\\abc.txt","r");
fgets(s,255,f);
printf("abc.txt文件的第一行为:%s\n",s);
fclose(f);
}
如何设置按钮输出文本文件的第一行?
就是在

void CDLLTestDlg::OnButton1() 
{
// TODO: Add your control notification handler code here
.
         .
         .
}  这里面应该如何写代码,输出文件的第一行?

希望高手进来指点指点

10 个解决方案

#1



void CDLLTestDlg::OnButton1() 

// TODO: Add your control notification handler code here 

        . 
        . 
}就是想调用get()函数输出文件的第一行 

#2


你得修改接口让外部调用时得到数据

_declspec(dllexport) void get(char* szText)  

     FILE *f;  //获得文件的第一行 
      //char s[256]; 
     if((f=fopen("c:\\abc.txt","r")) != NULL)
     { 
        fgets(szText,255,f); 
        //printf("abc.txt文件的第一行为:%s\n",s); 
        fclose(f); 
     }
}

void CDLLTestDlg::OnButton1() 

// TODO: Add your control notification handler code here 
     char sz[256]; 
     get(sz);

     //最好是通过列表控件或编辑控件来显示结果,这里只是显示在当前窗口(10,10)坐标处
     CDC dc = GetDC();
     dc.TextOut(10,10, sz);  
}

#3


编译的时候这句话有错!CDC dc = GetDC();

cannot convert from 'class CDC *' to 'class CDC'这个问题怎么解决????

#4


…………

CDC  * pdc = GetDC();

改成指针嘛…………

 

#5


dc.TextOut(10,10, sz);  

改为

dc ->TextOut(10,10, sz);  

#6


引用 2 楼 ryanwen 的回复:
你得修改接口让外部调用时得到数据
C/C++ code
_declspec(dllexport)voidget(char* szText)  

     FILE*f;//获得文件的第一行//char s[256];if((f=fopen("c:\\abc.txt","r"))!= NULL)
     { 
        fgets(szText,255,f);//printf("abc.txt文件的第一行为:%s\n",s);        fclose(f); 
     }
}void CDLLTestDlg::OnButton1() 
{// TODO: Add your control notification handler code herechar sz[256];get(sz);//最好是通过列表控件或编辑控件来显示结果,这里只是显示在当前窗口(10,10)坐标处     CDC dc= GetDC();
     dc.TextOut(10,10, sz);  
}

我已经修改了~~~~~~但是还是那个错误。还有你能不能通过按钮来显示结果?我是新手啊,昨天才开始接触DLL,拜托了!3Q

#7


...写错了

我这没VS,凭印象在文本上编辑的...

CDC *pDC = GetDC();
pDC->TextOut(10,10, sz); 

#8


_declspec(dllImport) void get(char* szText);

get("this way");

#9


控制台程序的输出函数 到 GUI 程序里行不通

_declspec(dllexport) void get() 

FILE *f;  //获得文件的第一行 
char s[256]; 
f=fopen("c:\\abc.txt","r"); 
fgets(s,255,f); 
printf("abc.txt文件的第一行为:%s\n",s); 
fclose(f); 
}

#10


建议用 CStudioFile 类 或 CArchive 类 的 GetString 函数读写文本文件的第一行数据

#1



void CDLLTestDlg::OnButton1() 

// TODO: Add your control notification handler code here 

        . 
        . 
}就是想调用get()函数输出文件的第一行 

#2


你得修改接口让外部调用时得到数据

_declspec(dllexport) void get(char* szText)  

     FILE *f;  //获得文件的第一行 
      //char s[256]; 
     if((f=fopen("c:\\abc.txt","r")) != NULL)
     { 
        fgets(szText,255,f); 
        //printf("abc.txt文件的第一行为:%s\n",s); 
        fclose(f); 
     }
}

void CDLLTestDlg::OnButton1() 

// TODO: Add your control notification handler code here 
     char sz[256]; 
     get(sz);

     //最好是通过列表控件或编辑控件来显示结果,这里只是显示在当前窗口(10,10)坐标处
     CDC dc = GetDC();
     dc.TextOut(10,10, sz);  
}

#3


编译的时候这句话有错!CDC dc = GetDC();

cannot convert from 'class CDC *' to 'class CDC'这个问题怎么解决????

#4


…………

CDC  * pdc = GetDC();

改成指针嘛…………

 

#5


dc.TextOut(10,10, sz);  

改为

dc ->TextOut(10,10, sz);  

#6


引用 2 楼 ryanwen 的回复:
你得修改接口让外部调用时得到数据
C/C++ code
_declspec(dllexport)voidget(char* szText)  

     FILE*f;//获得文件的第一行//char s[256];if((f=fopen("c:\\abc.txt","r"))!= NULL)
     { 
        fgets(szText,255,f);//printf("abc.txt文件的第一行为:%s\n",s);        fclose(f); 
     }
}void CDLLTestDlg::OnButton1() 
{// TODO: Add your control notification handler code herechar sz[256];get(sz);//最好是通过列表控件或编辑控件来显示结果,这里只是显示在当前窗口(10,10)坐标处     CDC dc= GetDC();
     dc.TextOut(10,10, sz);  
}

我已经修改了~~~~~~但是还是那个错误。还有你能不能通过按钮来显示结果?我是新手啊,昨天才开始接触DLL,拜托了!3Q

#7


...写错了

我这没VS,凭印象在文本上编辑的...

CDC *pDC = GetDC();
pDC->TextOut(10,10, sz); 

#8


_declspec(dllImport) void get(char* szText);

get("this way");

#9


控制台程序的输出函数 到 GUI 程序里行不通

_declspec(dllexport) void get() 

FILE *f;  //获得文件的第一行 
char s[256]; 
f=fopen("c:\\abc.txt","r"); 
fgets(s,255,f); 
printf("abc.txt文件的第一行为:%s\n",s); 
fclose(f); 
}

#10


建议用 CStudioFile 类 或 CArchive 类 的 GetString 函数读写文本文件的第一行数据