CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  ATL/ActiveX/COM

100分求助一个简单问题

楼主zhxxj(中华学习机)2005-08-04 03:15:43 在 VC/MFC / ATL/ActiveX/COM 提问

Private   Declare   Function   EbExecuteLine   Lib   "vba6.dll"   (ByVal   pStringToExec   As   Long,   ByVal   Unknownn1   As   Long,   ByVal   Unknownn2   As   Long,   ByVal   fCheckOnly   As   Long)   As   Long  
   
  Public   Function   ExecuteLine(sCode   As   String,   Optional   fCheckOnly   As   Boolean)   As   Boolean  
        ExecuteLine   =   EbExecuteLine(StrPtr(sCode),   0&,   0&,   Abs(fCheckOnly))   =   0  
  End   Function  
   
  如何改写为   VC   代码?  
  要求:传入   LPCTSTR   的字符串。 问题点数:100、回复次数:7Top

1 楼jiangsheng(蒋晟.Net[MVP])回复于 2005-08-04 08:08:53 得分 0

#import   "C:\Program   Files\DevStudio\VB\VBA6.dll"   no_namespace,named_guidsk用生成包装类看看  
  Top

2 楼moloto2004()回复于 2005-08-04 10:46:43 得分 0

动态加载行么?Top

3 楼bobob(静思)回复于 2005-08-04 11:09:54 得分 0

typedef     long(__stdcall   EbExecuteLine)(void   *,void   *,void   *,void   *);  
  HINSTANCE   hInst;  
  hInst   =   ::LoadLibrary("VBA6.dll");  
   
  EbExecuteLine   *pFun   =   (EbExecuteLine   *)GetProcAddress(hInst,"EbExecuteLine");  
  LPCSTR   c1="111";  
  pFun(c1,NULL,NULL,NULL);Top

4 楼boyplayee()回复于 2005-08-05 00:12:40 得分 0

学习楼上两位前辈,MARK。Top

5 楼zhxxj(中华学习机)回复于 2005-08-05 01:42:32 得分 0

其实问题的关键是第一个参数是“指向BSTR的指针”,但是我无论怎么调都报错!Top

6 楼zhxxj(中华学习机)回复于 2005-08-05 01:43:46 得分 0

//#import   "C:\Program   Files\DevStudio\VB\VBA6.dll"   no_namespace,named_guidsk用生成包装类看看  
  我是菜鸟,请详细说说好吗?Top

7 楼zhxxj(中华学习机)回复于 2005-08-05 04:59:22 得分 0

/////////////////////////////////////////////////////////////////////////////  
  //   CCFXBasicView   message   handlers  
   
  void   CCFXBasicView::OnProjRun()    
  {  
  //   TODO:   Add   your   command   handler   code   here  
   
  typedef   int(*EbExecuteLineProc)(void   *,   int,   int,   BOOL);  
  EbExecuteLineProc   EbExecuteLine;  
  HINSTANCE   hDll   =   LoadLibrary("C:\\Program   Files\\Microsoft   Visual   Studio\\VB98\\vba6.dll");  
  EbExecuteLine   =   (EbExecuteLineProc)GetProcAddress(hDll,   "EbExecuteLine");  
  char   szCode[65536]   =   "";  
  CEdit   &edtMain   =   CCFXBasicView::GetEditCtrl();  
  edtMain.GetWindowText((LPTSTR)&szCode,   65536);  
  BSTR   strCode   =   _com_util::ConvertStringToBSTR(szCode);    
  EbExecuteLine(strCode,   0,   0,   0);  
   
  }  
  包含路径就可以脱离IDE运行。  
  从向导创建一个单文档工程,视图从CEditView派生,添加一个菜单,加入上面处理代码。  
  程序运行出错!  
  帮帮我吧!  
  解决了再给100分,决不食言!Top

相关问题

  • 简单!
  • 简单
  • 简单~~~
  • 简单
  • 简单!
  • 简单
  • 简单
  • 简单……
  • 简单问题不简单!
  • 简单的简单啊!

关键词

  • vba
  • vb
  • program
  • dll
  • null
  • ebexecuteline
  • ccfxbasicview
  • ebexecutelineproc
  • fcheckonly
  • vba6

得分解答快速导航

  • 帖主:zhxxj

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo