vb写的DLL为check.dll 其中有函数FreeCode("102"),返回值0 或 1;
我在程序这样写
typedef bool (*FUNC)(CString);
FUNC func;
HINSTANCE hLibrary=::LoadLibrary("CHECK.DLL");
if(hLibrary)
{
func=(FUNC)::GetProcAddress(hLibrary,"FreeCode");
if(func("102")) //出错 a
{
....
}
}
在执行到if(func("102"))出错,提示"unhandled exception in
loginexe::ox0000005:access violation"
写成if(func)通过可如何调用函数?
我在程序这样写
typedef bool (*FUNC)(CString);
FUNC func;
HINSTANCE hLibrary=::LoadLibrary("CHECK.DLL");
if(hLibrary)
{
func=(FUNC)::GetProcAddress(hLibrary,"FreeCode");
if(func("102")) //出错 a
{
....
}
}
在执行到if(func("102"))出错,提示"unhandled exception in
loginexe::ox0000005:access violation"
写成if(func)通过可如何调用函数?
客户给我check.dll 其中有函数 void getmessage();
我把check.dll放到debug目录中,在VC中这样写:#include <ole2.h>
#include <comutil.h>// 指示链接 comsupp.lib 库. 这个库是 comutil.h 需要的.
#pragma comment(lib, "comsupp.lib")// #import 预处理指令导入指定的类型库.
#import "e:\debug\check.dll"int main()
{
//初始化 COM
CoInitialize(NULL); //创建智能指针对象, 用 ProgID "check.Class1" 作为构造函数参数.
check::_Class1Ptr ptrclass1("check.Class1");
if (ptrclass1 != NULL) { //调用方法
ptrclass1->Hello();
//注意, 在使用完后, pclass1 不需要调用 Release, 因为它是智能指针,
} CoUninitialize();
}这样也编译不过,说check.tlh中错误,提示少;注意check.dll是用VB写的。
明天我给你一个例枝OK