我在DLL里面写了一个函数:
void p4(LPCTSTR rr)
{
    rr="dddd";
}
我在调用DLL时,传给p4(LPCTSTR rr)一个CHAR*,具体如下
char a[10];
a[0]='1';
m_a->p4(a);
CString str=_T(*a)
AfxMessageBox(str);
我的想法是给p4传一个char*,然后经过P4处理后,a的值变成dddd,最后输出,我写的总不行。请问怎么做呀????

解决方案 »

  1.   

    再说一句,dll,我是用MFC来做的。不知道我表达的清不清楚。
      

  2.   

    rr="dddd";??
    字符串拷贝要用strcpy(...)
      

  3.   

    strcpy
    strncpy之类的可以实现你的要求
    但安全性比较查!
      

  4.   

    LPCTSTR rr
    这是指向const string的指针,即这个指针指向地址里的内容不能被改变。
    在pr()函数里,不能改变rr所指内容的值。
    这就是原因
      

  5.   

    何况你pr()中还写错了
    rr="dddd";//error
      

  6.   

    谢谢或者这样说吧。
    我希望给DLL传一个CHAR*,经过DLL处理完后,把结果返回到CHAR*,怎么做。 
    我在DLL的函数的参数中怎么不能定义CHAR*,比如p4(char* p)
      

  7.   

    或者有谁能告诉我怎么定义成p4(char* p)吗?
      

  8.   

    怎么没人帮我了吗?
    有谁知道用MFC做DLL时,定义参数时怎么定义成CHAR*呀?
      

  9.   

    难道直接用char* 不可以?我做过好象没问题啊
      

  10.   

    好象你应该把他作成const char吧
      

  11.   

    你的dll里的函数应该设为远过程调用
      

  12.   

    OK,谢谢各位,我现在已经做出来了,但是我发现只有C可以调用,VB不行,我想一定是我的接口不规范吧,没按标准来做。
    不过还是谢谢各位。 catyou(雨后春笋) 你能告诉我你是怎么做的吗?