Welcome

首页 / 软件开发 / JAVA / 其他J/Direct特性

其他J/Direct特性2007-05-29 yycnet.yeah.net yyc译通过@dll.import引导命令内的修改符(标记),还可用到J/Direct的另两项特性。第一项是对OLE函数的简化访问,第二项是选择API函数的ANSI及Unicode版本。

根据约定,所有OLE函数都会返回类型为HRESULT的一个值,它是由COM定义的一个结构化整数值。若在COM那一级编写程序,并希望从一个OLE函数里返回某些不同的东西,就必须将一个特殊的指针传递给它——该指针指向函数即将在其中填充数据的那个内存区域。但在Java中,我们没有指针可用;此外,这种方法并不简练。利用J/Direct,我们可在@dll.import引导命令里使用ole修改符,从而方便地调用OLE函数。标记为ole函数的一个固有方法会从Java形式的方法签名(通过它决定返回类型)自动转换成COM形式的函数。

第二项特性是选择ANSI或者Unicode字串控制方法。对字串进行控制的大多数Win32 API函数都提供了两个版本。例如,假设我们观察由USER32.DLL导出的符号,那么不会找到一个MessageBox()函数,相反会看到MessageBoxA()和MessageBoxW()函数——分别是该函数的ANSI和Unicode版本。如果在@dll.import引导命令里不规定想调用哪个版本,JVM就会试着自行判断。但这一操作会在程序执行时花费较长的时间。所以,我们一般可用ansi,unicode或auto修改符硬性规定。

欲了解这些特性更详细的情况,请参考微软公司提供的技术文档。