VC 怎么调用 VB 写的带自定义事件的DLL
VC 如何调用 VB 写的带自定义事件的DLL
最近开发了一个程序, 界面需要基于Excel的VBA开发。 VBA的数据是从一个DLL组件中通过Socket获取的。目前遇到一个问题:
Socket数据如何才能主动展现在Excel中。
我研究了好久貌似是要用VBA自定义事件,在VC的DLL中封装事件,然后通过WIndow事件机制完成调用。
问题:
VC如何封装这个事件,真心不会搞,请教大侠 !!!!!!!!
------解决方案--------------------
将VB的dll,lib拷贝到工程目录下面,然后我给你一个示例。。。。
最近开发了一个程序, 界面需要基于Excel的VBA开发。 VBA的数据是从一个DLL组件中通过Socket获取的。目前遇到一个问题:
Socket数据如何才能主动展现在Excel中。
我研究了好久貌似是要用VBA自定义事件,在VC的DLL中封装事件,然后通过WIndow事件机制完成调用。
问题:
VC如何封装这个事件,真心不会搞,请教大侠 !!!!!!!!
------解决方案--------------------
将VB的dll,lib拷贝到工程目录下面,然后我给你一个示例。。。。
BOOL CGlobalHookDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// Add "About..." menu item to system menu.
HINSTANCE hInst;
hInst = LoadLibrary("GHookDLL.dll"); //加载dll的名字
typedef void (*SetHookProc)(HWND hWnd); //你的dll里面。你需要调用的函数指针,根据你的函数写自己相应的指针
SetHookProc SetHook = (SetHookProc)GetProcAddress(hInst,"SetHook");//获得函数SetHook的指针(该函数式dll里面的函数名)
SetHook(m_hWnd); //执行该函数
// IDM_ABOUTBOX must be in the system command range.
ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
ASSERT(IDM_ABOUTBOX < 0xF000);
//....................
// TODO: Add extra initialization here
return TRUE; // return TRUE unless you set the focus to a control
}