这是在vc中的调用过程:
这是:EasyIrqSample.cpp
#include <windows.h>
#include <conio.h>
#include "easyirq.h"// the function that is called every IRQ
void __stdcall irqHandler(DWORD irqNum) {
    MessageBox(0, "IRQ here !", "", 0);
}int PASCAL WinMain (HANDLE hInstance, HANDLE hPrevInstance, LPSTR lpszCmdParam, int nCmdShow) {
// turn on IRQ 7 handling
    if ( easyIrq(7, TRUE, &irqHandler) ) {
        MessageBox(0, "some error", "error", 0);
        return 1;
    }
    // just wait irqs
MessageBox(0, "click OK to finish", "", 0);
    // turn off IRQ 7 handling (mask irq)
    easyIrq(7, FALSE, &irqHandler);
    return 0;
}
这是:EasyIrq.h
extern "C" DWORD __stdcall easyIrq(DWORD irqNumber, DWORD onoff, void (__stdcall *callbackfunction)(unsigned long));// return values of easyIrq function
#define EASY_IRQ_ERR_CANT_LOAD_DRIVER 1
#define EASY_IRQ_ERR_CANT_CALL_OPENVXDHANDLE 2
#define EASY_IRQ_ERR_CANT_CREATE_EVENT 3
#define EASY_IRQ_ERR_DEVICEIOCONTROL_ON 4
#define EASY_IRQ_ERR_CANT_OPEN_IRQ 5
#define EASY_IRQ_ERR_DEVICEIOCONTROL_OFF 6
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
这是vb的调用过程未通过:
form1中的代码:
Private Sub Command1_Click()
Call easyIrq(7,  true,address0f cout)
End Sub
Private Sub Command1_Click()
Call easyIrq(7, ByVal true,address0f cout)
End SubModule1中的代码:
Public Declare Function easyIrq Lib "EasyIrq.dll" _
(ByVal irqNumber As Long, ByVal onoff As Long, ByVal callbackfunction As Long) As Long
Public count As Long
Public Sub cout(coun As Long)
count = count + 1
End Sub

解决方案 »

  1.   

    转给豆子处理啦-_-#现在没VB,VC,家里面有,网络也不好:D
      

  2.   

    extern "C" DWORD __stdcall easyIrq(DWORD irqNumber, DWORD onoff,
     void (__stdcall *callbackfunction)(unsigned long));
    这是一个回调函数的指针,怎么可以用long类型!我觉得是个比较高难的调用,一般api的调用没用过这么复杂的不知道这个参数用 addressof 修饰下好不好使
      

  3.   

    你的easyIrq函数的声明和使用应该没什么问题cout函数的参数记得加上ByValPublic Sub cout(ByVal coun As Long)
    count = count + 1
    End Sub
      

  4.   

    supergreenbean
    我可以把源码发给你吗?还是没有搞定
      

  5.   

    可能你dll中所导出的函数名有后缀,你用dependency之类的工具查看一下导出函数的名字