你说的对,非托管调用的异常是无法获得的===================================================
技术交流不该有界限 资源共享不该有条件
博客空间:http://blog.csdn.net/lovingkiss
资源下载:http://download.csdn.net/user/lovingkiss
Email:loving-kiss@163.com
本人说明:<我的帖子我做主,结贴率保持100%>
1、欢迎一切问题有关的交流——无论答案对错;
2、不欢迎 顶、Mark、支持之类口水混分的人;
3、对带有性别的主题和求全部毕业代码者尽量不回答;
我保留对非<散分贴>蹭分者的厌恶和鄙视...
精通:jīnɡtōnɡ对学问技术等透彻的了解并熟练掌握
所以,我没有精通,只有JZ
===================================================
技术交流不该有界限 资源共享不该有条件
博客空间:http://blog.csdn.net/lovingkiss
资源下载:http://download.csdn.net/user/lovingkiss
Email:loving-kiss@163.com
本人说明:<我的帖子我做主,结贴率保持100%>
1、欢迎一切问题有关的交流——无论答案对错;
2、不欢迎 顶、Mark、支持之类口水混分的人;
3、对带有性别的主题和求全部毕业代码者尽量不回答;
我保留对非<散分贴>蹭分者的厌恶和鄙视...
精通:jīnɡtōnɡ对学问技术等透彻的了解并熟练掌握
所以,我没有精通,只有JZ
===================================================
这个dll是Win32动态链接库,不是COM
技术交流不该有界限 资源共享不该有条件
博客空间:http://blog.csdn.net/lovingkiss
资源下载:http://download.csdn.net/user/lovingkiss
Email:loving-kiss@163.com
本人说明:<我的帖子我做主,结贴率保持100%>
1、欢迎一切问题有关的交流——无论答案对错;
2、不欢迎 顶、Mark、支持之类口水混分的人;
3、对带有性别的主题和求全部毕业代码者尽量不回答;
我保留对非<散分贴>蹭分者的厌恶和鄙视...
精通:jīnɡtōnɡ对学问技术等透彻的了解并熟练掌握
所以,我没有精通,只有JZ
===================================================
问题是这个非托管的dll没有代码啊,是第一家公司提供的,问题就是得不到他的代码啊
就是因为它的不可管理型,增大了灵活度,降低了安全性===================================================
技术交流不该有界限 资源共享不该有条件
博客空间:http://blog.csdn.net/lovingkiss
资源下载:http://download.csdn.net/user/lovingkiss
Email:loving-kiss@163.com
本人说明:<我的帖子我做主,结贴率保持100%>
1、欢迎一切问题有关的交流——无论答案对错;
2、不欢迎 顶、Mark、支持之类口水混分的人;
3、对带有性别的主题和求全部毕业代码者尽量不回答;
我保留对非<散分贴>蹭分者的厌恶和鄙视...
精通:jīnɡtōnɡ对学问技术等透彻的了解并熟练掌握
所以,我没有精通,只有JZ
===================================================
难道就没有一个解决这样类似的问题的办法吗?
技术交流不该有界限 资源共享不该有条件
博客空间:http://blog.csdn.net/lovingkiss
资源下载:http://download.csdn.net/user/lovingkiss
Email:loving-kiss@163.com
本人说明:<我的帖子我做主,结贴率保持100%>
1、欢迎一切问题有关的交流——无论答案对错;
2、不欢迎 顶、Mark、支持之类口水混分的人;
3、对带有性别的主题和求全部毕业代码者尽量不回答;
我保留对非<散分贴>蹭分者的厌恶和鄙视...
精通:jīnɡtōnɡ对学问技术等透彻的了解并熟练掌握
所以,我没有精通,只有JZ
===================================================
技术交流不该有界限 资源共享不该有条件
博客空间:http://blog.csdn.net/lovingkiss
资源下载:http://download.csdn.net/user/lovingkiss
Email:loving-kiss@163.com
本人说明:<我的帖子我做主,结贴率保持100%>
1、欢迎一切问题有关的交流——无论答案对错;
2、不欢迎 顶、Mark、支持之类口水混分的人;
3、对带有性别的主题和求全部毕业代码者尽量不回答;
我保留对非<散分贴>蹭分者的厌恶和鄙视...
精通:jīnɡtōnɡ对学问技术等透彻的了解并熟练掌握
所以,我没有精通,只有JZ
===================================================
{
//
}
catch // 这里什么都不写
{
//出错处理
}
我程序里面和你说的是一样的我保证我已经在所有调用这个dll内方法的所有地方都用了try... catch{}这样来捕获所有异常,
而且在Application.ThreadException也对程序所有发生的异常进行处理,还是捕获不到这个dll的异常Application.ThreadException这个应该是最低级的了……
还是捕获不到
to wzd24
问题是这个非托管的dll没有代码啊,是第一家公司提供的,问题就是得不到他的代码啊
----------------------------------------------------------------------------------
这个DLL是否有错误?会不会是你传入错误的参数导致DLL处理出错的??你要咨询一下这个DLL的提供商!
我是按照它提供的demo中dll的P/Invoke抄下来的,所以参数上和它提供的标准demo是一致的,我有点怀疑这个公司的开发能力了……郁闷啊
有时候是弹出"0x77dfdffd"指令引用的"0x7c86123c"内存。该内存不能为"written"。
这样的错误,这个肯定是这个dll内部抛出的异常啊……
所以我说——他开发的环境很可能和你的“环境”有所出入的;建议:换台比较干净的系统,做一个只有一个调用该DLL的函数,用定时器刷新它,看看是否还出问题,就可以确定问题在哪里了。不要和我抢分,半个月从光腚到星星的目标,就靠你了
===================================================
技术交流不该有界限 资源共享不该有条件
博客空间:http://blog.csdn.net/lovingkiss
资源下载:http://download.csdn.net/user/lovingkiss
Email:loving-kiss@163.com
本人说明:<我的帖子我做主,结贴率保持100%>
1、欢迎一切问题有关的交流——无论答案对错;
2、不欢迎 顶、Mark、支持之类口水混分的人;
3、对带有性别的主题和求全部毕业代码者尽量不回答;
我保留对非<散分贴>蹭分者的厌恶和鄙视...
精通:jīnɡtōnɡ对学问技术等透彻的了解并熟练掌握
所以,我没有精通,只有JZ
===================================================
to wzd24
我是按照它提供的demo中dll的P/Invoke抄下来的,所以参数上和它提供的标准demo是一致的,我有点怀疑这个公司的开发能力了……郁闷啊-----------------------------------------------------------------
那你就更应该去问问他们了!
不要和我抢分,半个月从光腚到星星的目标,就靠你了
===================================================
技术交流不该有界限 资源共享不该有条件
博客空间:http://blog.csdn.net/lovingkiss
资源下载:http://download.csdn.net/user/lovingkiss
Email:loving-kiss@163.com
本人说明:<我的帖子我做主,结贴率保持100%>
1、欢迎一切问题有关的交流——无论答案对错;
2、不欢迎 顶、Mark、支持之类口水混分的人;
3、对带有性别的主题和求全部毕业代码者尽量不回答;
我保留对非<散分贴>蹭分者的厌恶和鄙视...
精通:jīnɡtōnɡ对学问技术等透彻的了解并熟练掌握
所以,我没有精通,只有JZ
===================================================
===================================================
技术交流不该有界限 资源共享不该有条件
博客空间:http://blog.csdn.net/lovingkiss
资源下载:http://download.csdn.net/user/lovingkiss
Email:loving-kiss@163.com
本人说明:<我的帖子我做主,结贴率保持100%>
1、欢迎一切问题有关的交流——无论答案对错;
2、不欢迎 顶、Mark、支持之类口水混分的人;
3、对带有性别的主题和求全部毕业代码者尽量不回答;
我保留对非<散分贴>蹭分者的厌恶和鄙视...
精通:jīnɡtōnɡ对学问技术等透彻的了解并熟练掌握
所以,我没有精通,只有JZ
===================================================你的这个尾巴太长了点……哈哈
{
//
}
catch // 这里什么都不写
{
//出错处理
}
---------------------------------------------------------------------------------
这种方法是可以尝试的,这种方法在大部分时候可以捕获异常。Application.ThreadException 也是一种很好的方法,另外如果你有辅助线程的话,辅助线程的入口处,也要Try...Catch处理
还有,既然.net平台可以提示错误,说明这个错误是可以被捕捉的,因为.net平台是最后一道防线,专门用来捕捉你没有捕捉到的东西。.net平台有内置的异常处理机制。
所以该错误还是可以被捕捉的,建议你Reflector 一下.net的异常处理机制,看看有没有更好的办法来进行捕捉。
int er = Marshal.GetLastWin32Error();
这样就可以捕捉到错误代码.
2、如果是DLL和系统环境的冲突造成的崩溃
{
//
}
catch // 这里什么都不写
{
//出错处理
}
只能捕获托管的异常,非托管的异常捕获不了
=================================
呵呵,我也做过类似功能。第三方提供给我的dll文件,注册成COM组件。
后来我用类型库导入程序(Tlbimp.exe)将COM 类型库中的类型定义转换为公共语言运行库程序集中的等效定义。用起来和.net的类库一模一样。
不知道你的dll文件是否能注册成COM组件?
我的dll不是Com哦,我在上面已经说清楚了,是动态链接库,调用和调用Win32 API一样
如果是COM还好办点了
注明:
这个dll是Win32动态链接库,不是COM--------------------------------
在发完帖的时候就补充了,哈哈
patrickpan(离别钩)有什么好的办法吗
It's written in VC++,
How can i do?
调用是在C#中调用GetLastError() 怎么用?
比如使用某个api。返回结果和期望的不同。但不知道为什么返回的不是自己想要的,就用GetLastError获得错误信息,到WINERROR.H里找错误的宏,知道为什么错误。同样这个开放给用户使用,可以用SetLastError设置错误编码,然后用GetLastError获得错误信息,不过这个就只有自己约定,不可以找WINERROR.H了。
异常和这个无关。你不可以通过公司,去找对方公司反映情况么?
extern "C"
{
_declspec(dllexport) int IncludeExceptionFunction();}int IncludeExceptionFunction()
{
throw;
return 0;
}就这样而已。用.net调用。try,catch貌似可以捕捉到异常的。
可以捕获到吗?你确定?
try
{}
catch //什么也不写
//捕获非托管代码异常
//在C#高级编程中有提到这一点
{}
同意:amandag(高歌)
try
{}
catch //什么也不写
//捕获非托管代码异常
//在C#高级编程中有提到这一点
{}
还有这样一说啊。我就是不知道类型。所以什么也没写。莫非就是这样?
[DllImport("ThrowExceptionDll.dll", EntryPoint = "IncludeExceptionFunction")]
public static extern int IncludeExceptionFunction(); private void button5_Click(object sender, EventArgs e)
{
try
{
IncludeExceptionFunction();
}
catch
{
MessageBox.Show("handled exception.");
}
finally
{
}
}
haolaiwu(宁愿相信世界上有鬼,也不相信女人那张嘴) ( ) 信誉:100 Blog 加为好友 2007-06-30 08:58:19 得分: 0
to wuyazhe
可以捕获到吗?你确定?
确定阿。要不你自己建个vc的dll,或者留邮箱我发给你测试点代码。