很是着急,试了半天都不行,谢谢 !!!!!!!!!!
解决方案 »
- int[] a 和 int* a有什么区别
- 问一个很弱的问题,VC60中怎么切换debug和release?
- 使用MoveTo和LineTo来画曲线,出现锯齿,如何才能消除锯齿,来使曲线平滑?
- ADO访问sql server 2000(sp4)如何判断连接断开?
- 如何禁用IE打开链接?
- 内存分配及泄漏问题,100分,不够再加
- 一个很简单的问题
- 按照老罗的一篇文章,用rc mytest.rc出现的错误,请大虾们指点!(不知老罗在站上否)
- 在同一台计算机上的两个进程A在不知道B进程窗口标题名称的情况下,如何得到B进程窗口的句柄?
- MFC关于txt逐行读取问题
- 高手们来谈谈这个难题!!!!
- 怎样循环打印?
1. 在DllTest.cpp中为DLL添加导出函数,语法为:extern "C" BOOL PASCAL EXPORT DoHelp()
{
AFX_MANAGE_STATE(AfxGetStaticModuleState());
// normal function body here
::MessageBox(NULL,"Hello World!","MSG",MB_OK);
return TRUE;
}
使用extern "C"语法可以让C++程序模块和其他语言共享数据和方法。2. 在DllTest.def中指定该函数为导出函数,也就是标准DLL为其他程序开放的接口函数。语法为:
EXPORTS
DoHelp
; Explicit exports can go here3. 编译。这样在其他程序中就可以调用这个DLL了。
在VB中的调用:
首先声明:
Private Declare Sub DoHelp Lib "h:\DllTest.dll" ()
因为测试DLL中的DoHelp函数没有返回值,所以在VB中,声明为sub。然后调用:
Private Sub Command1_Click()
DoHelp
End Sub
File->New->Files->TextFile->查入a.def文件不可少)
a.def的内容编辑如下:
LIBRARY "a"
DESCRIPTION 'a.dll'
EXPORTS
funA
在a.h中
int WINAPI funA(int x,int y);
在a.cpp中
int WINAPI funA(int x,int y)
{
return x*y;
}
编译成a.dll->copy a.dll c:\windows\system
在vb的Modules(不能在form中)中声明如下:
Declare Function funA Lib "c:\windows\system\a.dll" (Byval x as integer,Byval y as integer) as integer