以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  高级功能研发区  (http://weistock.com/bbs/list.asp?boardid=5)
----  关于addinDemo  (http://weistock.com/bbs/dispbbs.asp?boardid=5&id=68947)

--  作者:yanhuiqiang
--  发布时间:2014/8/20 8:14:29
--  关于addinDemo

想学习一下addinDemo这个例子,要想显示那个对话框,应该怎么得顺序调用其方法?

typedef void (WINAPI *lpFun)(BOOL);

pfun=(lpFun)GetProcAddress(hinstDLL,"ShowAddinWindow");

pfun(true);

执行时遇到内存问题,请指教,谢谢!


--  作者:admin
--  发布时间:2014/8/20 10:35:33
--  
这个对话框是金字塔系统来调用的,你只要将示例的工程代码不要乱改就行
--  作者:yanhuiqiang
--  发布时间:2014/8/20 11:01:46
--  
我可以在VC其它的工程里面调用吗?谢谢
--  作者:yanhuiqiang
--  发布时间:2014/8/20 11:15:49
--  
另外,那个函数是可以找到的,执行这条语句出问题,CWnd * pParent = CWnd::FromHandle(g_pMainFormework->GetMainWindow());。
--  作者:admin
--  发布时间:2014/8/20 11:26:04
--  
你不用在其他地方调用的,这个窗体插件被调用后就显示了,你只要在这个窗体类里写自己代码就行了,具体看插件的范例
--  作者:yanhuiqiang
--  发布时间:2014/8/20 20:37:43
--  
能不能具体给个具体的范例。或者给出地址。
--  作者:yanhuiqiang
--  发布时间:2014/8/20 20:44:43
--  

void CCallDllDlg::OnBnClickedOk()
{
 // TODO: 在此添加控件通知处理程序代码
 HINSTANCE  hinstDLL=::LoadLibrary(_T("AddinDemo.dll"));
 if (hinstDLL)
 {
  typedef void (WINAPI *lpFun)(BOOL);
  typedef void (WINAPI *lpFun1)(HWND IMainFramework);
  typedef bool (*lpFun2)();
  

  lpFun pfun;
  lpFun1 pfun1;
  lpFun2 pfun2;
  pfun=(lpFun)GetProcAddress(hinstDLL,_T("ShowAddinWindow"));
  pfun1=(lpFun1)GetProcAddress(hinstDLL,"InitFinished");
  pfun2=(lpFun2)GetProcAddress(hinstDLL,"InitInstance");
  //pfun2();
  //pfun1();
  pfun(true);
 }
 

 CDialogEx::OnOK();
}

这段代码有问题,执行ShowAddinWindow的时候出问题。


--  作者:王锋
--  发布时间:2014/8/20 22:14:53
--  
你不能在其他EXE工程里调用金字塔的插件,这个插件只能在金字塔里调用