字符串数组作为参数的函数,参数类型该怎么设计

温水煮青蛙come-on 2012-12-05 01:23:44
写一个dll,参数是字符串数组,数组元素也是作为参数传递,参数类型怎么设计呢?
...全文
523 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
引用 13 楼 gz_qmc 的回复:
你保证每个串都是'\0'结尾 行有没有也就无关紧要了
嗯。谢谢。等明天弄好了结贴。
gz_qmc 2012-12-06
  • 打赏
  • 举报
回复
你保证每个串都是'\0'结尾 行有没有也就无关紧要了
  • 打赏
  • 举报
回复
引用 9 楼 gz_qmc 的回复:
定义: void YourFuntion(char **xPara,int col,int row); 实现: void YourFuntion(char **xPara,int col,int row) { int i,j; //注意,i要保证<col;j要保证<row; //单个字符操作: xPara[j][i]='C'; //一个串操……
遇到点其他问题了。耽搁了。。 我本意是传递字符串数组,所以只能知道列,行没法传递~
gz_qmc 2012-12-05
  • 打赏
  • 举报
回复
引用 10 楼 tiger9991 的回复:
如果是要其他语言调用导出必须是带extern "C" 其实 void YourFuntion(char *xPara,int num) 传一个参数即可 之后访问 *(char *)(xPara + i)//(i是小于num的数,这样就可以访问到任何一个数组元素了)
呵呵,你说的是对的,就怕楼主现在接受不了
傻X 2012-12-05
  • 打赏
  • 举报
回复
如果是要其他语言调用导出必须是带extern "C" 其实 void YourFuntion(char *xPara,int num) 传一个参数即可 之后访问 *(char *)(xPara + i)//(i是小于num的数,这样就可以访问到任何一个数组元素了)
gz_qmc 2012-12-05
  • 打赏
  • 举报
回复
定义: void YourFuntion(char **xPara,int col,int row); 实现: void YourFuntion(char **xPara,int col,int row) { int i,j; //注意,i要保证<col;j要保证<row; //单个字符操作: xPara[j][i]='C'; //一个串操作; memset(xPara[j],0,row);//清零 memcpy(xPara[j],"ABCDEFG\0",sizeof("ABCDEFG\0"); //拷贝 } 调用: char xx[5][100]; YourFuntion(xx,5,100)
  • 打赏
  • 举报
回复
引用 5 楼 gz_qmc 的回复:
还有一个笨点的办法 如果是字串 void YourFuntion(char *xPara,int num) 如果是字串数组 void YourFuntion(char **xPara,int num)
char **xPara能稍微举个例子吗?不会中介个
LiuYinChina 2012-12-05
  • 打赏
  • 举报
回复
VOID WINAPI Function(LPCSTR *lpszText, DWORD dwCount);
gz_qmc 2012-12-05
  • 打赏
  • 举报
回复
还有一个笨点的办法 如果是字串 void YourFuntion(char *xPara,int num) 如果是字串数组 void YourFuntion(char **xPara,int num)
  • 打赏
  • 举报
回复
引用 3 楼 gz_qmc 的回复:
定义: void YourFuntion(CString &xPara); 实现: void YourFuntion(CString &xPara) { xPara.Format("随几数:%d",rand()&0xFFFF); } 调用: CString tmp; YourFuntion(&tmp); MessageBox(tmp); ……
这个dll要被delphi7调用,delphi7中没有跟CString对应的类型。
gz_qmc 2012-12-05
  • 打赏
  • 举报
回复
定义: void YourFuntion(CString &xPara); 实现: void YourFuntion(CString &xPara) { xPara.Format("随几数:%d",rand()&0xFFFF); } 调用: CString tmp; YourFuntion(&tmp); MessageBox(tmp);
  • 打赏
  • 举报
回复
引用 1 楼 gz_qmc 的回复:
void YourFuntion(CString &xPara)
delphi调用,CString不行。
gz_qmc 2012-12-05
  • 打赏
  • 举报
回复
void YourFuntion(CString &xPara)

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧