当OpenFileDialog-> ShowDialog()时,注入的dll无法冻结;

时间:2012-08-26 02:48:18

标签: c++ visual-studio-2010

我创建了一个项目dll,其中包含form1mainDll.cpp,当我在目标进程中注入Dll时,一切正常,所有函数和form1都被调用在mainDLL.cpp中,form1在目标进程的同一内存空间中打开,但今天我尝试将OpenFileDialog放在此表单的按钮中。

button Code
{
    OpenFileDialog1->ShowDialog();
}

问题是,当我点击按钮,然后由Dll冻结加载的表单,而不是目标进程,只有我注入的进程FORM1;

1 个答案:

答案 0 :(得分:-1)

好吧,没有人回答这个问题。 我在开始编码的时候就成功了。

两年后,我在游戏黑客和这些东西上工作,现在我可能会抱怨真正的问题。

可能c++ CLI .NET需要一个最佳加载过程而不是注入的dll可以做到这一点,或者某个.net所需的dll可能与目标注入dll冲突,但是如果想要创建一个应用程序将是注入并打算在MS的许多OS中工作,这个dll不应该在这个内容中使用.NET技术。

如果是纯c ++(推荐): - 使用尽可能低的msvc版本 - 使用\mt进行编译(这不需要在目标计算机中进行可再发行的安装) - 在编译器中使用选项以避免应用程序在加载必要的dll时找到未使用的函数(在visual studio LINKER / OPTIMIZATION(REFERENCES = YES,ENABLE COMDAT FOLDING = YES))。 -in linker/system/系统最低要求的版本(5.01)为windows xp以后。

这一切都将避免在WINDOWS操作系统上的兼容性。