gpt4 book ai didi

C++ 将命令行参数传递给 dll

转载 作者:行者123 更新时间:2023-11-30 01:29:47 25 4
gpt4 key购买 nike

环境:Windows XP SP3、Visual C++ 2010 Express、DLL 模板

我正在尝试将命令行参数传递给我的 dll 函数

示例:“c:\Development>rundll32, getpage.dll,GetPage http://www.google.ca

当我传递以下字符串“http://www.google.ca”时,我得到随机数(假设地址位置?)

#include "stdafx.h"

#include <string.h>

#include <string>

#include <stdlib.h>

#include <stdio.h>

#include <urlmon.h>

#include <tchar.h>

#include <fstream>

using namespace std;

extern "C" __declspec(dllexport) LPCWSTR __cdecl GetPage(LPCWSTR URL);

BOOL APIENTRY DllMain( HANDLE hModule, DWORD ul_reason_for_call, LPVOID lpReserved ){
return TRUE;
}

LPCWSTR GetPage(LPCWSTR URL){

LPCWSTR status;

HRESULT getpage_status = URLDownloadToFile ( NULL,URL, _TEXT("status.log"), 0, NULL );

/*** Do stuff is working if I pass a static string eg URL = "http://www.google.ca"; I need command line args sent to the function instead***/

return status;

最佳答案

您不能使用 rundll32 来运行任何 DLL 函数,您只能用它来运行具有以下签名的函数:

  void CALLBACK
EntryPoint(HWND hwnd, HINSTANCE hinst, LPSTR lpszCmdLine, int nCmdShow);

参见 MSDN获取更多信息。要么更改 GetPage 以使用此函数签名,要么创建一个具有该签名的新函数用作入口点并调用 GetPage

关于C++ 将命令行参数传递给 dll,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5330171/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com