社区
C#
帖子详情
使用dllimport调用c++的dll ,如何调试这个dll呢?
ComeOnBabys
2008-02-09 11:09:05
如题:我新建两个项目,一个是c#的exe,一个是win32的dll.
c#中使用dllimport的方式调用该dll,调用过程中发生类似地址访问越界的异常。
我想知道dll中哪错了。如何调试呢?如果在dll中调试,选了入口的exe,但在dll 中的断点根本就不停,就执行过去了,
请问:
如何才能在dll中的断点中停下来呢?
...全文
1934
41
打赏
收藏
使用dllimport调用c++的dll ,如何调试这个dll呢?
如题:我新建两个项目,一个是c#的exe,一个是win32的dll. c#中使用dllimport的方式调用该dll,调用过程中发生类似地址访问越界的异常。 我想知道dll中哪错了。如何调试呢?如果在dll中调试,选了入口的exe,但在dll 中的断点根本就不停,就执行过去了, 请问: 如何才能在dll中的断点中停下来呢?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
41 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
longrenle
2011-02-16
打赏
举报
回复
哦~ 对我来说是大前年的帖子了
呵呵 看来受益人无数啊
设置dll工程为启动项目
C++DLL工程属性->调试->调试器类型->仅限本机 就OK了!
longrenle
2011-02-16
打赏
举报
回复
汗~ 前年的帖子了 不知道能行不 试试
人到中年琐事多
2010-02-07
打赏
举报
回复
是不是封送的参数类型不对,内存访问跨界一般是参数的数据类型没有对齐
mm304321141
2010-02-07
打赏
举报
回复
汗。。。是前年啊。。。
mm304321141
2010-02-07
打赏
举报
回复
哎呀。。。去年的帖子了。。。
我刚刚也碰到这问题,
C++DLL工程属性->调试->调试器类型->仅限本机
就可以命中断电了......
hansion3406
2008-05-11
打赏
举报
回复
也把那个DLL发给我一下吧。
我也要参考一下,怎么样破解
我要破解的啊。
rocky.bourne@gmail.com
ComeOnBabys
2008-02-16
打赏
举报
回复
对了,我给你的是08的项目,我在05上试试,打不开啊。我用05重写了一份。也给你吧。
ComeOnBabys
2008-02-16
打赏
举报
回复
用户名和密码是买的,默认为空就可以。
我也没这个dll,我用的类库就是把引擎装上以后,从c盘安装文件夹里考的几个文件。
然后把弹出的那个提示对话框用90换了。
问题是如果从c++的win32调用就没事,为什么c#不行呢?
真相重于对错
2008-02-15
打赏
举报
回复
又看了一下,
convertAgent.dll ,调用另外一个dwmapi.dll
他在初始化时会装载这个dll,我这里没有
真相重于对错
2008-02-15
打赏
举报
回复
还有你能给我提供一下
3: char *RegName
注册名 (试用版本可以为空)
3: char *RegCode:
注册KEY(试用版本可以为空)
这几个参数,我再试一下
真相重于对错
2008-02-15
打赏
举报
回复
我就是用c++作的
ComeOnBabys
2008-02-15
打赏
举报
回复
请问出的错误和我那个异常一样吗?
我认为不是版本的问题,如果不做跨语言调用
写一个c++ 的win32 调用那个dll,一点问题也没有。
真相重于对错
2008-02-15
打赏
举报
回复
int __stdcall InitAgent(DWORD dwInputType,DWORD WaitTime=300,char *RegName = "",char *RegCode="");
函数功能:
初始化 ConvertAgent 环境,
返回码:
如果函数成功返回 0 ,否则查询 .h文件中定义的错误码。
参数说明
1: DWORD dwInputType
SM_DOC_ONLY :文档类型 例如 : doc .xls .pdf .wps .ppt 等
(需要SmartPrinter 支持)
SM_DOC_ONLY :文档类型 例如 : .bmp .jpg .gif .png .tiff .txt .log 等
(不需要SmartPrinter 支持)
SM_ALL_TYPE: 包含以上两种类型
2: DWORD WaitTime (秒)
转换文档最大等待时间。
3: char *RegName
注册名 (试用版本可以为空)
3: char *RegCode:
注册KEY(试用版本可以为空)
====================
一加载那个dll,就出错,还是找一个正式版的吧
真相重于对错
2008-02-14
打赏
举报
回复
这个多字节如何设?我试过没有参数传递的情况,出的问题也一样。
============================================================
c++
项目属性-〉常规-〉字符集-〉使用多字节字符集
C#
[DllImport("convert.dll", CharSet = CharSet.Ansi)]
static extern int Convert(string inPaht, string outPath);
这两个需要一致,vc2005 以上 c++ 默认是unicode
你说的那个dll?不是正版,没错,但基本的功能不能出错吧, 您注意那个异常了嘛?请问那个异常如何解决呢?
======================================================================
我这里没有异常,而是弹出对话框,说请使用正式版软件,就退出了
葫芦鬼
2008-02-14
打赏
举报
回复
请把你win32 dll项目的属性里一个选项改为mixed
ComeOnBabys
2008-02-14
打赏
举报
回复
一,你的c#调用字符编码是ansi , vc2008 要记得设为多字节
------------------------------------------------------------------
这个多字节如何设?我试过没有参数传递的情况,出的问题也一样。
二,你调用的不是正式版的软件,所以一加载就会出错
----------------------------------------------------------------
你说的那个dll?不是正版,没错,但基本的功能不能出错吧,
您注意那个异常了嘛?请问那个异常如何解决呢?
ComeOnBabys
2008-02-14
打赏
举报
回复
to:hdt
更改c++ dll中的字符集后,问题依旧。
我这里没有异常,而是弹出对话框,说请使用正式版软件,就退出了
-----------------------------------------------------------------
是不是提示:次版本dll为测试dll,请购买正版啊?
实在对不起啊,浪费您的时间了,我给你的dll是原始的,其实我破解了已经。我再发给您一个破解了的。
异常会在项目:Convert_test2编译后的exe双击时出来,那个异常是我的关键。真是麻烦您了!先行谢过!
真相重于对错
2008-02-14
打赏
举报
回复
我这里没有vs2008 ,用的是2005 可以调试,注意两个问题,
一,你的c#调用字符编码是ansi , vc2008 要记得设为多字节
二,你调用的不是正式版的软件,所以一加载就会出错
ComeOnBabys
2008-02-12
打赏
举报
回复
顶下。
cnzdgs
2008-02-11
打赏
举报
回复
把Debugging设置中的Debugger Type改成Native Only或者Mixed,再调试dll就可以了。
加载更多回复(21)
C#
调用
C++
DLL
导出类
C++
DLL
中包含一个类,C#端要
调用
这个类的函数,重新封装这个类,来供C#端
调用
C#
调用
C++
DLL
(函数参数包含指针)
C#
调用
C++
DLL
,
C++
DLL
中的函数参数包含指针。 绝对可用。
C#通过
Dll
Import
导入
C++
的动态链接库
介绍在C#工程中,用
Dll
Import
调用
C++
生成的动态链接库(
DLL
)
C#
调用
C++
DLL
托管
C#
使用
托管的方式
调用
C++
dll
,实现简单的加减法
C++
DLL
C#
调用
进行重命名
将
DLL
放在运行目录然后 [
Dll
Import
("Rename.
dll
",EntryPoint="Rename")] public static extern void Rename(string oldpfile,string newfile); 直接
调用
Rename即可
C#
111,119
社区成员
642,545
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章