在DLL中操作Excel的问题?(虽然很多人问,但是我看了还是没解决)

lirg8405 2009-05-16 08:35:36
我想在我的DLL中操作Excel文件,DLL入口如下:
int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void* lpReserved)
{
switch(reason)
{
case DLL_PROCESS_ATTACH:
CoInitialize(NULL);
break;
case DLL_PROCESS_DETACH:
CoUninitialize();
if (FormPrintMain != NULL)
{
SendMessage(FormPrintMainHandle,WM_CLOSE,NULL,NULL);
}
Application = SaveApp ; // 恢复 Application
break;
}

return 1;
}
然后操作Excel如下:
try
{
Excel=Variant::CreateObject("Excel.Application");
Excel.OlePropertySet("Visible",true); //运行到这里出错
Excel.OlePropertyGet("WorkBooks").OleProcedure("add"); //新建一个工作薄
}
catch(...)
{
ShowMessage("运行Excel出错,请确认安装了Office");
return;
}
运行到Excel.OlePropertySet("Visible",true); 出现访问错误;
Access violation at address 013773C7. Read of address 00000800;
原因是什么呢?请高手回答下,谢谢
...全文
78 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
fairchild811 2009-05-17
  • 打赏
  • 举报
回复
恩,没有create就用了,就是access violation。。。。
lirg8405 2009-05-17
  • 打赏
  • 举报
回复
[Quote=引用楼主 lirg8405 的帖子:]
我想在我的DLL中操作Excel文件,DLL入口如下:
int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void* lpReserved)
{
switch(reason)
{
case DLL_PROCESS_ATTACH:
CoInitialize(NULL);
break;
case DLL_PROCESS_DETACH:
CoUninitialize();
if (FormPrintMain != NULL)
{
SendMessage(FormPrintMainHandle,WM_CLOSE,NULL,NULL);

[/Quote]
没找到怎样修改贴子,出错原因是我把Packages下面的Build with runtime packages去掉了,打上勾就没错,但是必需得去掉的啊,有没有人能帮解决下是怎么会事,谢谢
lirg8405 2009-05-17
  • 打赏
  • 举报
回复
第一句难道不是?
fairchild811 2009-05-17
  • 打赏
  • 举报
回复
和runtime packages 有关?
lirg8405 2009-05-17
  • 打赏
  • 举报
回复
为什么我的问题没人能帮解决..........
ccrun.com 2009-05-16
  • 打赏
  • 举报
回复
CreateOleObject
zhanghelpsgz 2009-05-16
  • 打赏
  • 举报
回复
帮顶

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧