关于动态链接库的问题

我的益达快过期 2016-05-26 08:35:53
我是新手,网上搜了一些教程,学习了一下。都是一血比较大小,再就是helloword这样的动态链接库教程
自己尝试的时候发现在编写动态链接库的时候只有int 、double、void、bool这样类型的变量可以定义。像string之类的不行,我想实现在指定目录的一个 文件里面写入一段东西的功能,做成链接库,然后在我的安装程序里使用。请问这样关于文件操作的链接库可以实现吗?怎么实现,基本找不到资料。
...全文
386 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
引用 11 楼 zhao4zhong1 的回复:
string是对象,不是一段内存,不适合作为DLL函数的参数传来传去。
这样,明白了
  • 打赏
  • 举报
回复
引用 6 楼 renwotao2009 的回复:
[quote=引用 4 楼 qwe135792468 的回复:] [quote=引用 3 楼 renwotao2009 的回复:] 如果你要写string这样的stl代码的话,建议你用char数组,或者使用c的malloc、free函数来动态分配char数组进行字符串的保存和操作。我不知道你要写一个什么样的动态库,但如果使用malloc或free时,如果动态库内申请,请在动态库内free。
我对C和C++不熟悉,我用的是C#,我做得安装包要选择两个路径,我想把这两个路径记录下来后,写入一个dat文件,我做成动态链接库是因为这样子我就可以直接引用它,然后把两个路径传递给我库里面的函数(比如writePath(string installPath, string servicePath)),这样子。。。也就是关于文件操作的,不知道能否实现。[/quote]封装成一个工具类不行吗?调用时也很简单啊![/quote] 我也想。。我是用于程序打包过程中路径的传递,在VS中自带的安装设置实现不了,用的setup factory,里面是类pascal。编辑脚本的时候有一个写文件的功能,TextFile.WriteFromString(“要创建的文本.txt”, "要写入文本的字符串",true);可惜在"要写入文本的字符串"里不能传递参数,只能自定义字符串。所以只能引用动态链接库来扩充功能。。。
赵4老师 2016-05-27
  • 打赏
  • 举报
回复
string是对象,不是一段内存,不适合作为DLL函数的参数传来传去。
  • 打赏
  • 举报
回复
引用 7 楼 lqbk1 的回复:
[quote=引用 5 楼 qwe135792468 的回复:] [quote=引用 2 楼 lqbk1 的回复:] https://msdn.microsoft.com/zh-cn/library/ms235636.aspx
这个比较大小的,基本没用。。我看了的,也会写这样的,但是关于文件的操作的不会写[/quote] 楼主啊,学会如何问问题,如何表达清楚自己的需求,这是是很重要的事情...... 请google一下《提问的智慧》? 往文件里写东西,直接用c的fwrite就完了......... 参数别用string用const char*[/quote] 在问题里已经说了。。。不是只有标题。。。总不能把问题的描述全部放在标题里面吧?
Eleven 2016-05-27
  • 打赏
  • 举报
回复
fopen/fwrite/fclose() 或是使用Win32 API CreateFile/WriteFile/Close()写文件
  • 打赏
  • 举报
回复
bool也不能用,只能是C兼容的类型
lqbk1 2016-05-26
  • 打赏
  • 举报
回复
引用 5 楼 qwe135792468 的回复:
[quote=引用 2 楼 lqbk1 的回复:] https://msdn.microsoft.com/zh-cn/library/ms235636.aspx
这个比较大小的,基本没用。。我看了的,也会写这样的,但是关于文件的操作的不会写[/quote] 楼主啊,学会如何问问题,如何表达清楚自己的需求,这是是很重要的事情...... 请google一下《提问的智慧》? 往文件里写东西,直接用c的fwrite就完了......... 参数别用string用const char*
renwotao2009 2016-05-26
  • 打赏
  • 举报
回复
引用 4 楼 qwe135792468 的回复:
[quote=引用 3 楼 renwotao2009 的回复:] 如果你要写string这样的stl代码的话,建议你用char数组,或者使用c的malloc、free函数来动态分配char数组进行字符串的保存和操作。我不知道你要写一个什么样的动态库,但如果使用malloc或free时,如果动态库内申请,请在动态库内free。
我对C和C++不熟悉,我用的是C#,我做得安装包要选择两个路径,我想把这两个路径记录下来后,写入一个dat文件,我做成动态链接库是因为这样子我就可以直接引用它,然后把两个路径传递给我库里面的函数(比如writePath(string installPath, string servicePath)),这样子。。。也就是关于文件操作的,不知道能否实现。[/quote]封装成一个工具类不行吗?调用时也很简单啊!
  • 打赏
  • 举报
回复
引用 2 楼 lqbk1 的回复:
https://msdn.microsoft.com/zh-cn/library/ms235636.aspx
这个比较大小的,基本没用。。我看了的,也会写这样的,但是关于文件的操作的不会写
  • 打赏
  • 举报
回复
引用 3 楼 renwotao2009 的回复:
如果你要写string这样的stl代码的话,建议你用char数组,或者使用c的malloc、free函数来动态分配char数组进行字符串的保存和操作。我不知道你要写一个什么样的动态库,但如果使用malloc或free时,如果动态库内申请,请在动态库内free。
我对C和C++不熟悉,我用的是C#,我做得安装包要选择两个路径,我想把这两个路径记录下来后,写入一个dat文件,我做成动态链接库是因为这样子我就可以直接引用它,然后把两个路径传递给我库里面的函数(比如writePath(string installPath, string servicePath)),这样子。。。也就是关于文件操作的,不知道能否实现。
renwotao2009 2016-05-26
  • 打赏
  • 举报
回复
如果你要写string这样的stl代码的话,建议你用char数组,或者使用c的malloc、free函数来动态分配char数组进行字符串的保存和操作。我不知道你要写一个什么样的动态库,但如果使用malloc或free时,如果动态库内申请,请在动态库内free。
dustpg 2016-05-26
  • 打赏
  • 举报
回复
void* = 任意类型

15,472

社区成员

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

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