一个在VB中打开PDF文件的问题

qian_x_j 2005-07-01 10:42:13
需求:在VB中打开一个*.pdf的文件,操作系统中已经安装了acrobat reader 7.0了。

实现步骤:
1、我首先使用Shell()来打开文件,结果发现,Shell只能执行exe程序。而执行(打开)某个PDF文件报错“无效过程调用或参数”
2、第一种方法实现不了之后,我想用windows API即 ShellExcute函数,因为我在C语言中是可以正常使用的,函数入口在Shell32.lib中。函数原形为
HINSTANCE ShellExecute(
HWND hwnd,
LPCTSTR lpVerb,
LPCTSTR lpFile,
LPCTSTR lpParameters,
LPCTSTR lpDirectory,
INT nShowCmd
);
所以在VB中,我这样声明
Private Declare Function ShellExecute Lib "shell32" (ByVal hwnd As Integer, _
ByVal lpVerb As String, ByVal lpFile As String, ByVal lpParameters As String, _
ByVal lpDirectory As String, ByVal nShowCmd As Integer) As Integer
但是一执行,就报错“找不到 DLL 入口点 ShellExcute in shell32”。

问题:我的代码有什么错误吗?
...全文
1520 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
qi226 2006-06-12
  • 打赏
  • 举报
回复
acropdf.dll
cenhanen 2005-10-26
  • 打赏
  • 举报
回复
請問你這函數怎麼調用的?各參數是什麼意思呢?能給個答復嗎,謝謝。
AprilSea 2005-07-03
  • 打赏
  • 举报
回复
做个记号好学习
benniao2 2005-07-01
  • 打赏
  • 举报
回复
但是这样在没有装acrobat reader 7.0的机器上却没有任何反应,我想打开文件时先判断一下系统有没有与之相关联的程序,怎么做?
qian_x_j 2005-07-01
  • 打赏
  • 举报
回复
多谢!
问题解决了。给分!
但是,请问为什么要一个Alias "ShellExecuteA"? Alias "ShellExecuteB" 行不行,这个是VB的惯例吗?
of123 2005-07-01
  • 打赏
  • 举报
回复
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
ship23 2005-07-01
  • 打赏
  • 举报
回复
但是这样在没有装acrobat reader 7.0的机器上却没有任何反应,我想打开文件时先判断一下系统有没有与之相关联的程序,怎么做?
dolphin87 2005-07-01
  • 打赏
  • 举报
回复
使用Alias关键字指出API函数的别名,如果我们调用的API函数要使用字符串(参数中包含String型)的话,Alias关键字是必须的。这是因为在ANSI和Unicode字符集中同一API函数的名称可能是不一样的,以保证不出现声明错误,一般来说把API函数名后加一个大写A作为别名即可。

1,486

社区成员

发帖
与我相关
我的任务
社区描述
VB API
社区管理员
  • API
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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