CLI调用DLL的调试问题

iamwanghui 2007-11-19 10:09:35
大家好

我有几个问题

1、我用VC2005建了一个CLI的应用程序,需要调用原来用c/c++写的DLL(有源码)。可是无论如何调置,始终无法进入到DLL代码的断点中去,如何换用C#调用,就可以轻易进入DLL调试,请问,如何用CLI,如何进行设置呢?

2、上连提到的DLL中,有函数参数为fn(const char * str),内部实现大概为
char newstr[80];
strcpy(newstr,str);
我在CLI中进行调用的时候直接写fn("hello world"),运行时发生错误,内存之类什么的。
用C#进行调用没有问题。
请问这个参数要如何传递才行?

3、CLI程序无法和C程序进行结合吗?编译到一起。

问题有点儿多,谢谢各位了。
...全文
79 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
真相重于对错 2007-11-19
  • 打赏
  • 举报
回复
1、我用VC2005建了一个CLI的应用程序,需要调用原来用c/c++写的DLL(有源码)。可是无论如何调置,始终无法进入到DLL代码的断点中去,如何换用C#调用,就可以轻易进入DLL调试,请问,如何用CLI,如何进行设置呢?
==============
注意调试类型

2、上连提到的DLL中,有函数参数为fn(const char * str),内部实现大概为
char newstr[80];
strcpy(newstr,str);
我在CLI中进行调用的时候直接写fn( "hello world "),运行时发生错误,内存之类什么的。
用C#进行调用没有问题。
请问这个参数要如何传递才行?
==============
注意字符编码

3、CLI程序无法和C程序进行结合吗?编译到一起。
===================
可以 clr
lizhizhe2000 2007-11-19
  • 打赏
  • 举报
回复
1.你的CLI程序和有源码的Dll工程放在一个解决方案中么?
2.可以在调用fn()前声明一个const char*变量,传给fn这个变量
3.可以
清钟沁桐 2007-11-19
  • 打赏
  • 举报
回复
我使用
#include<stdio.h>
#include<windows.h>
#include<string.h>

__declspec(dllexport) void demo()
{
#define PASSWORD_SIZE 100
#define PASSWORD "myGOODpassword\n"

int count = 0;
char buff[PASSWORD_SIZE]="";

for(;;)
{
// 提示用户输入密码并且读取他
printf("enter password: ");
fgets(&buff[0],PASSWORD_SIZE,stdin);

// 针对参数值匹配输入的密码
if(strcmp(&buff[0],PASSWORD))
{
// “声诉”密码不匹配
printf("WRONG password\n");
}
else break;

// 鉴定失败计数值+1,并且在密码试输三次后终止程序运行
if(++count > 2) return ;
}
// 程序执行到这里,意味着用户输入的密码是正确的
printf("password ok!\n");
}

生成了一个mycrack.dll文件
然后再使用


#include<stdio.h>
#include<windows.h>
#include<string.h>

int main()
{
HMODULE hmod;
void (*zzz)();
if(( hmod=LoadLibrary("mycrack.dll") )
&&(zzz=(void(*)())GetProcAddress(hmod,"Demo")))
zzz();
return 0;
}调用,编译运行没有错误,但是就是没有提示输入密码
说明没有成功调用demo()函数吗?

7,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 VC.NET
社区管理员
  • VC.NET社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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