【发布时间】:2014-03-20 14:43:43
【问题描述】:
我正在尝试为以下代码构建一个 DLL。
test.cpp
#include <windows.h>
bool _stdcall DllMain( HANDLE hModule, DWORD ul_reason_for_call, LPVOID lpReserved)
{
return TRUE;
}
extern "C" _declspec(dllexport) bool _stdcall C_thread(LPSECURITY_ATTRIBUTES lpThreadAttributes,SIZE_T dwStackSize,LPTHREAD_START_ROUTINE lpStartAddress,LPVOID lpParameter,DWORD dwCreationFlags,LPDWORD lpThreadId)
{
HANDLE hThread;
DWORD threadID;
hThread = CreateThread(lpThreadAttributes,dwStackSize,lpStartAddress,lpParameter,dwCreationFlags,lpThreadId);
return hThread;
}
首先我尝试通过在可视命令提示符下使用以下命令来编译它。
cl /Zi test.cpp kernel32.lib
但它显示以下错误。
fatal error LNK1561: entry point must be defined
我需要通过命令提示选项来解决这个错误。
请帮我解决这个问题。
【问题讨论】:
-
首先,欢迎来到 StackOverflow!我们希望在这里提供帮助,但恐怕您的问题令人困惑。我并不是要批评,但看起来你只是从网上抓取了一段你不理解的代码,然后你把它扔给编译器,希望会弹出一个 dll。也许您应该退后一步,删除您的代码示例,并尝试解释您希望完成的任务。 (顺便说一句:从命令提示符创建一个 dll 将非常具有挑战性,即使对于有经验的程序员也是如此;您不能使用 VisStudio 有什么特别的原因吗?)
-
感谢您的回复。基本上我是linux用户。主要是在命令提示符下工作适合我。所以,我选择了可视命令提示符。
-
现在我来解决我的问题。我正在为 CreateThread() 创建 Hook 函数。但我的错误,它有错误。所以,只需在 DLL 中编写一个 createThread 函数。通过使用我的函数 (C_thread()) 我将调用 CreateThread() 函数。为此,我尝试构建一个 DLL。所以,我编译了它。但它显示致命错误。
标签: c++ visual-studio fatal-error