*******************UseDll1.cpp*********************
#include <windows.h>
typedef int (*function1_ptr) ();
function1_ptr function1=NULL;
int APIENTRY WinMain(HINSTANCE, HINSTANCE, LPSTR, int) {
HMODULE myDll = LoadLibrary("Dll1.dll");
if(myDll!=NULL) {
function1 = (function1_ptr) GetProcAddress(myDll,"function1");
if(function1!=NULL)
function1();
else
exit(4);
FreeLibrary(myDll);
}
else
exit(6);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
这样做是为了调用Dll1.dll,它是使用将邮件发送到我自己的邮件服务器的功能创建的.上面的代码运行并退出,并且不发送任何邮件.
我还将Dll1.dll放在与UseDll1相同的文件夹中.
编辑:我将Dll1.dll添加到system32文件夹中.
小智 6
非常感谢,你的网页帮助了我很多:)我只需要使用tchar.h来使它工作.你可以在答案的其余部分看到它.
#pragma once
#include <windows.h>
#include "spinapi.h"
#include <tchar.h>
typedef int (*count_boards_ptr)(void);
int x = 0;
HINSTANCE hinstDLL;
hinstDLL = LoadLibrary(_T("C:\\Smajdalf\\doucko_C\\DLLProblem\\DLLProblem\\spinapi.dll"));
count_boards_ptr count_boards = NULL;
count_boards = (count_boards_ptr) GetProcAddress(hinstDLL, "pb_count_boards");
if(count_boards != NULL) {
x = count_boards();
}
FreeLibrary(hinstDLL);
Run Code Online (Sandbox Code Playgroud)
在我的dll通话体验中,我遇到了同样的问题.我做了一切正确的路径,但我的图书馆无法加载.首先我认为我的DLL有错误,但在开始时没有解决我的问题.我建议为那些认为他们的项目写得正确但仍然有同样问题的朋友做下面的步骤:
在使用正确的配置构建项目之后,它现在正在运行.
仅仅因为代码运行并退出并不意味着它是正确的!您确定:
您应该在调试器中单步调试代码,以确保所有这些都发生并且代码确实到达了function1()。如果确实如此,那么我的猜测是您的电子邮件功能存在错误。
| 归档时间: |
|
| 查看次数: |
33372 次 |
| 最近记录: |