我试用期结束后的作品,交到主管那里竟然在关闭界面的时候崩溃,求求热心的呢救我一命

jyzdtn 2010-07-30 04:11:44
在点击 button3 的时候会加载下面这个路径的 dll
str = "D:\\de\\HookSleepDLL\\Debug\\HookSleepDLL.dll";
点按钮 弹出程序,同时将dll注入

dll注入没问题,可惜在关闭程序的时候报错“XX内存错误,不能为write”

值得一提的是  \dll\debug 这个路径 下的dll 不会引起内存崩溃

求求大家帮我调试下
9我一命!!!
http://download.csdn.net/source/2585410
程序下载了把新建文件夹改名为 de 啊,不然找不到路径

关键是比较那2个dll 有什么区别,前一个是我的引起崩溃,后一个是实例

主管催了
...全文
309 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
jyzdtn 2010-08-02
  • 打赏
  • 举报
回复
[Quote=引用 21 楼 zwfgdlc 的回复:]
没玩过detour,一般自己手动整。
[/Quote]
zwfgdlc 2010-08-01
  • 打赏
  • 举报
回复
没玩过detour,一般自己手动整。
wykqhyjs 2010-07-31
  • 打赏
  • 举报
回复
关注哈之
gjskxy1 2010-07-30
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 lisunlin0 的回复:]
你的MessageBox用的不是时候。还有SetDllDirectory用得不对,而且多此一举。
[/Quote]
if(NO_ERROR!=error)
{
::MessageBox(NULL,("Error!"),("Error in Detours!"),MB_OK);
}
这个出错处理有问题吗
gjskxy1 2010-07-30
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 lisunlin0 的回复:]
你的MessageBox用的不是时候。还有SetDllDirectory用得不对,而且多此一举。
[/Quote]
SetDllDirectory 注释掉还是报错
gjskxy1 2010-07-30
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 lisunlin0 的回复:]
C/C++ code
// dllmain.cpp : Defines the entry point for the DLL application.
#include "stdafx.h"
#include "detours.h"
#pragma comment(lib,"detoured")
#pragma comment(lib,"detours")
void _stdcall……
[/Quote]
额我把你的代码全部COPY过来 倒是真的不报错了,大哥你真牛啊,我Q 895000080,做个朋友啊
我把我以前的代码贴上来,大家比较下是哪区别,本质原因在哪
#include "stdafx.h"
#include "detours.h"
#pragma comment(lib,"detoured")
#pragma comment(lib,"detours")
void _stdcall myTest()
{

}
static VOID (WINAPI * TrueSleep)(DWORD dwMilliseconds) = Sleep;
VOID WINAPI DelaySleep(DWORD dwMilliseconds){
TrueSleep(dwMilliseconds+15000);
}


BOOL APIENTRY DllMain( HANDLE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
int error;
switch(ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
DetourTransactionBegin();
DetourUpdateThread(::GetCurrentThread());
DetourAttach(&(PVOID&)TrueSleep, DelaySleep);
error = DetourTransactionCommit();
if(NO_ERROR!=error)
{
::MessageBox(NULL,("Error!"),("Error in Detours!"),MB_OK);
}
SetDllDirectory("D:\\Detours\\lib");
SetDllDirectory("D:\\Detours\\lib");
break;
case DLL_PROCESS_DETACH:
DetourTransactionBegin();
DetourUpdateThread(GetCurrentThread());
DetourDetach(&(PVOID&)TrueSleep, DelaySleep);
error = DetourTransactionCommit();
::MessageBox(NULL,("Detour ends"),("Prompt!"),MB_OK);
break;






case DLL_THREAD_ATTACH:

SetDllDirectory("D:\\Detours\\lib\\detours.lib");
SetDllDirectory("D:\\Detours\\lib\\detoured.lib");

break;




}
return TRUE;
}
UUcall007 2010-07-30
  • 打赏
  • 举报
回复
发个图片看看
gjskxy1 2010-07-30
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 lisunlin0 的回复:]
C/C++ code
// dllmain.cpp : Defines the entry point for the DLL application.
#include "stdafx.h"
#include "detours.h"
#pragma comment(lib,"detoured")
#pragma comment(lib,"detours")
void _stdcall……
[/Quote]
弹出的程序 点ok 关闭还是报错
gjskxy1 2010-07-30
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 lisunlin0 的回复:]
C/C++ code
// dllmain.cpp : Defines the entry point for the DLL application.
#include "stdafx.h"
#include "detours.h"
#pragma comment(lib,"detoured")
#pragma comment(lib,"detours")
void _stdcall……
[/Quote]
改动了什么地方吗
gjskxy1 2010-07-30
  • 打赏
  • 举报
回复
错误ox01175c93 指令引用的ox013052c8内存,该内存不能为 written
sunlin7 2010-07-30
  • 打赏
  • 举报
回复
// dllmain.cpp : Defines the entry point for the DLL application.
#include "stdafx.h"
#include "detours.h"
#pragma comment(lib,"detoured")
#pragma comment(lib,"detours")
void _stdcall myTest()
{

}
static VOID (WINAPI * TrueSleep)(DWORD dwMilliseconds) = &::Sleep;
VOID WINAPI DelaySleep(DWORD dwMilliseconds){
TrueSleep(dwMilliseconds+15000);
}


BOOL APIENTRY DllMain( HANDLE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
int error;
switch(ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
DetourTransactionBegin();
DetourUpdateThread(::GetCurrentThread());
DetourAttach(&(PVOID&)TrueSleep, DelaySleep);
error = DetourTransactionCommit();

break;
case DLL_PROCESS_DETACH:
DetourTransactionBegin();
DetourUpdateThread(GetCurrentThread());
DetourDetach(&(PVOID&)TrueSleep, DelaySleep);
error = DetourTransactionCommit();
break;

case DLL_THREAD_ATTACH:
break;
}
return TRUE;
}




就可以了。
sunlin7 2010-07-30
  • 打赏
  • 举报
回复
你的MessageBox用的不是时候。还有SetDllDirectory用得不对,而且多此一举。
vincent_1011 2010-07-30
  • 打赏
  • 举报
回复
不和你玩了,没玩detour也不想开大块头VS08
jyzdtn 2010-07-30
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 lisunlin0 的回复:]
王八蛋,下载还扣我分~~
[/Quote]
下载不扣分啊,我实在调试不好了
vincent_1011 2010-07-30
  • 打赏
  • 举报
回复
在等离职,帮你调试下,不过怎么这么大,没把垃圾文件清掉吗?
sunlin7 2010-07-30
  • 打赏
  • 举报
回复
王八蛋,下载还扣我分~~
sunlin7 2010-07-30
  • 打赏
  • 举报
回复
你先求主管宽限一下~~

明天和后天两天时间你自己牺牲一下休息时间,仔细调试一下,呵呵
angloy 2010-07-30
  • 打赏
  • 举报
回复
是用VC6.0做得吗?
jyzdtn 2010-07-30
  • 打赏
  • 举报
回复
调试不出来
麻烦兄弟们帮我下载了http://download.csdn.net/source/2585410
要我怎么报答都行
wanshi131 2010-07-30
  • 打赏
  • 举报
回复
自己调试一下
内容概要:本文围绕“【SCUC】N-1故障集+安全约束机组组合研究(Matlab代码实现)”展开,系统探讨电力系统在N-1故障场景下的安全约束机组组合(SCUC)问题,旨在实现系统安全性与运行经济性的协同优化。研究通过构建包含机组启停、出力计划、潮流约束、备用容量及N-1安全准则的数学模型,结合混合整数线性规划等优化算法,利用Matlab平台完成仿真求解,并引入YALMIP等建模工具提升建模效率。文档提供了完整的代码实现方案与测试案例,涵盖故障集的生成与处理方法,帮助用户掌握鲁棒性和分布鲁棒优化的基本思想,适用于电力系统安全校核与调度决策支持。; 适合人群:电力系统及相关专业的研究生、从事电力调度、能源优化的科研人员及工程技术人员。; 使用场景及目标:① 掌握N-1安全准则在机组组合中的建模方法与实现流程;② 开展安全约束机组组合(SCUC)与安全约束经济调度(SCED)的仿真分析;③ 利用Matlab/YALMIP快速搭建电力系统优化模型并进行求解与验证。; 阅读建议:建议读者结合文档内容与网盘提供的完整资源(含代码与数据),动手实践建模与调试过程,重点关注约束条件的设定、故障场景的枚举与处理策略,同时参考相关文献深化对鲁棒优化与分布鲁棒方法的理解。

15,465

社区成员

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

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