Plugins 设置Acrobat对话返回值的AsPathName

Plugins 设置Acrobat对话返回值的AsPathName,plugins,acrobat,acrobat-sdk,Plugins,Acrobat,Acrobat Sdk,我正在为AdobeAcrobat编写一个插件,在设置AVAppOpenDialog变量的对话实现时遇到了一些问题 *outASPathNames 在底部的代码中。它在方法中表示这个变量是一个 ASPathName** 下面是我如何设置它的。即使文件名为file.jpg,它有时也会显示不同的名称,如A9R5D8F.tmp,或者只是不起作用。我怀疑我没有正确设置变量,但是当你没有被告知什么是错误的时候,黑盒测试是非常困难的。有人能从下面的代码看出我可能做错了什么吗 ASPathName asPa

我正在为AdobeAcrobat编写一个插件,在设置
AVAppOpenDialog
变量的对话实现时遇到了一些问题

*outASPathNames
在底部的代码中。它在方法中表示这个变量是一个

ASPathName**
下面是我如何设置它的。即使文件名为file.jpg,它有时也会显示不同的名称,如A9R5D8F.tmp,或者只是不起作用。我怀疑我没有正确设置变量,但是当你没有被告知什么是错误的时候,黑盒测试是非常困难的。有人能从下面的代码看出我可能做错了什么吗

ASPathName asPathName;
char *filePath = "C:\\Test\\file1.jpg";
ASFile asFile;
ASPathName* arrays[] = {&asPathName};


asPathName = ASFileSysCreatePathFromDIPath(0, filePath, 0);
ASFileSysOpenFile64(0, asPathName, ASFILE_READ, (ASFile *)&asFile);


*outASPathNames = &asPathName;
根据AcrobatAPI,是一个路径名数组。因此,对于初学者,您需要使用数组,而不是ASPathName的地址

其次,您需要确保分配了这个数组内存,否则会抛出异常。1这里是数组的大小

*outASPathNames = (ASPathName*)ASmalloc(sizeof(ASPathName) * 1);
然后您可以填充

**outASPathNames = asPathName
**outASPathNames = asPathName