win32动态连接库传递参数的问题

djhdu 2004-06-28 04:39:57
我创建了一个win32 Dynamic Link Library 工程,用c语言的方式export接口函数
extern "C" __declspec(dllexport) 函数类型 __cdecl 函数名(参数);

问题:
我现在想把一个文本文件的全部内容传入到函数里面去,想用char *类型,但是如果文件有很多行的话,是不是传递的大小有限制啊,或者还有没有其它方法,一次性的把文件内容传入到dll中?
...全文
115 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
Zark 2004-06-29
  • 打赏
  • 举报
回复
1.不存在内容太长的问题,除非你在读文件的时候就已有问题了.

2.按行处理,使用strtok函数.
fire_up 2004-06-28
  • 打赏
  • 举报
回复
传指针嘛,另传个long型参数传递字符串长度。
djhdu 2004-06-28
  • 打赏
  • 举报
回复
可能说得不够清楚,我现在主要是在把文件读入到内存中,然后调用dll处理,只是把内存中的内容传入到dll中,我想用char 类型来传递,我现在有两个问题,1是内容太长,会不会超出限制,2是我传入以后,在dll中如何能够比较方便的按行分离字符串,然后处理一行字符串?
ANewGuy 2004-06-28
  • 打赏
  • 举报
回复
赞同 lianglp() 的意见,最好是传句柄。
其实最好是把文件操作放到dll中操作,不要传来传去的。
快乐鹦鹉 2004-06-28
  • 打赏
  • 举报
回复
把文件路径传递进去多好啊
3jaja 2004-06-28
  • 打赏
  • 举报
回复
我现在想把一个文本文件的全部内容传入到函数里面去,想用char *类型,但是如果文件有很多行的话,是不是传递的大小有限制啊,或者还有没有其它方法,一次性的把文件内容传入到dll中?

用char *类型没有限制。char *仅4个字节而已。
fbmsf 2004-06-28
  • 打赏
  • 举报
回复
串句柄吧。
lianglp 2004-06-28
  • 打赏
  • 举报
回复
HANDLE hFile = CreateFileMapping(...) ;//把文件作映像用。
LPVOID pBuffer = ::MapViewOfFile(hFile,...) ;//得到文件开始地址。
把上面的pBuffer传递到DLL接口中就可以了
qwertasdfg123 2004-06-28
  • 打赏
  • 举报
回复
跟内存有关。
因为dll是一个单独的进程,如果把数据指针给它,系统会把指针指向的内存连通指针一起拷贝到dll的进程空间中。

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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