如何调试带有源代码的dll文件
答案:2 悬赏:0 手机版
解决时间 2021-02-26 00:33
- 提问者网友:喧嚣尘世
- 2021-02-25 13:36
如何调试带有源代码的dll文件
最佳答案
- 五星知识达人网友:拜訪者
- 2021-02-25 14:57
运行库组件
你可以在腾讯电脑管家的电脑诊断中找到软件问题,选择丢失VC++组件,点击立即修复。
或
在工具箱,打开电脑诊所,丢失.Dll 文件,进行一键修复
你可以在腾讯电脑管家的电脑诊断中找到软件问题,选择丢失VC++组件,点击立即修复。
或
在工具箱,打开电脑诊所,丢失.Dll 文件,进行一键修复
全部回答
- 1楼网友:时间的尘埃
- 2021-02-25 15:34
第一步,调试的准备。
用c#语言编写一个测试dll文件的程序,由于dll源程序是c的,且运行结果是黑屏的,所以c#代码也是运行在黑屏的console环境下。完整代码如下。
using system;
using system.collections.generic;
using system.linq;
using system.text;
using system.runtime.interopservices;
namespace testmelp{class program{[dllimport(@d:\visual studio projects\filemelp\debug\filemelp.dll, charset = charset.ansi, callingconvention = callingconvention.cdecl)]
extern static void cmd_melp(int argc, string[] argv);
static void main(string[] args){//string cmd = melp -s -i d:/bin/bit -o d:/bin/output;
string cmd = melp -a -i d:/bin/inputd -o d:/bin/bitright;
string[] argv = cmd.split(new char[] { ' ' });
int argc = argv.length;
cmd_melp(argc, argv);}}}由于调试的filemelp.dll文件和本程序不在同一个文件夹下,容易出现文件地址问题,所以本测试程序的文件均采用绝对地址。另外cmd的格式要求不能有两个连续的空格,也可以通过使用trim函数,解决这个问题。
第二步,定位到自己改写的带有源代码的dll工程。
本文的filemelp.dll工程,是通过本空间的生成vs dll那篇博客生成的,具体实现方法不在赘述。下面的两段代码分别添加到filemelp工程melp.h和melp.c文件最下面。
#ifndef lib_h
#define lib_h
extern _declspec(dllexport) void cmd_melp(int argc, char **argv);
#endifvoid cmd_melp(int argc, char **argv){main(argc,argv);}按f6,上述步骤实现filemelp.dll动态库的生成。
第三步,添加测试程序到dll源代码处。
在filemelp工程里面,右击filemelp工程,选择属性。
或者按alt+enter,弹出如下界面。
在configuration properties\debugging\command选择第一步生成的测试.exe文件。这样完成了调试前的准备。接下来,在需要调试的代码地方,添加断点。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯