相关疑难解决方法(0)

AFX_MANAGE_STATE(AfxGetStaticModuleState())完全做了什么

我已经使用了很多模态对话框,并且它们在没有使用的情况下工作正常AFX_MANAGE_STATE,但是最近我正在开发一个不同的项目,其中资源dll与启动dll不同.我浏览网页并找到上面的行,当我在启动对话框之前插入它时,它工作正常.我想也许因为我们有不同的dll,我们需要加载主dll的状态才能启动对话框,但我不确定.我无法在互联网上的任何地方找到一个好的解释.任何人都可以用简单的语言AFX_MANAGE_STATE解释我突然不得不使用它的原因和原因.

谢谢.

c++ mfc

16
推荐指数
2
解决办法
2万
查看次数

Visual Studio 2010库链接顺序

如何在Visual Studio 2010中指定库文件的链接顺序?

我有一个项目链接libexpat和另一个库.这个库(不在我的控制之下)似乎也包括libexpat.问题是'我们'使用不同版本的库(XML_UNICODE vs不).在Visual Studio 2008中,似乎没有问题(可能是巧合),但在Visual Studio 2010中,libexpat的错误实例已链接.我想如果我可以指定这两个库应该链接的顺序,那么我可以绕过这个问题.

c++ static-libraries visual-studio-2010

3
推荐指数
2
解决办法
1万
查看次数

注入后未执行 DLLMain()

我已经用 C++ 编写了一个 dll 和注入器。dll代码如下:

#include <cstdio>
#include <stdio.h>
#include <windows.h>
#include <string>
#include <fstream>
#include <winsock.h>
using namespace std;
#pragma comment(lib, "wsock32.lib")

extern "C" __declspec(dllexport) void UploadFile()
{
.....
}

INT APIENTRY DLLMain(HMODULE hinstDLL, DWORD fdwReason, LPVOID lpReserved)
{
    switch(fdwReason)
    {
    case DLL_PROCESS_ATTACH:
        MessageBox(0,"Process Attach","Info",MB_OK);
        UploadFile();
        break;
    case DLL_THREAD_ATTACH:
        MessageBox(0,"Thread Attach","Info",MB_OK);
        UploadFile();
        break;
    case DLL_PROCESS_DETACH:
        break;
    case DLL_THREAD_DETACH:
        break;
    default:
        break;
    }
    return TRUE;
}
Run Code Online (Sandbox Code Playgroud)

dll 将特定文件上传到服务器。我能够使用 LoadLibrary() 和 CreateRemoteThread() 成功地将 dll 注入“notepad.exe”,但它没有被执行。甚至不是 dllmain() 函数。不知道出了什么问题。

c++ windows dll-injection dllmain

3
推荐指数
1
解决办法
3663
查看次数