vb中关于return的问题。

siqian_11 2009-12-24 04:02:00
Imports System
Imports System.Text
Imports System.Runtime.InteropServices
Imports System.IO
Imports FujiXerox.DocuWorks.Toolkit.Xdwapi

Namespace TestmainDLL

Public Class XdwapiWrapper
Public Shared Function XDW_ExtractFromSfxDocument(ByRef foundHandle As XDW_FOUND_HANDLE)As Integer

Return foundHandle

End Function
End Class
End Namespace


想要返回一个XDW_FOUND_HANDLE类型的foundHandle,但是总是提示“Value of type ‘XDW_FOUND_HANDLE‘ cannot be converted to 'Integer'.“这是怎么回事,请哪位高手帮忙解决下!!!谢谢了!
...全文
599 13 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
lazyboysqaz 2009-12-24
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 siqian_11 的回复:]
public static int XDW_AddAnnotation(Xdwapi.XDW_DOCUMENT_HANDLE documentHandle, int annotationType, int page, int horPos, int verPos, object initialData, ref Xdwapi.XDW_ANNOTATION_HANDLE newAnnotation);


这是我的数据元中的要求得到的类型,把这语句转vb语言实现,其实就是vb语言封装下,但是我好像没有弄明白怎么个原理,所以总是通不过!
我现在写完的vb语言的是这样的,
Public Class XdwapiWrapper

        Public Shared Function XDW_AddAnnotation(ByVal documentHandle As XDW_DOCUMENT_HANDLE, _
                                                ByVal annotationType As Integer, _
                                                ByVal page As Integer, _
                                                ByVal horPos As Integer, _
                                                ByVal verPos As Integer, _
                                                ByVal initialData As Object, _
                                                ByRef newannotation As XDW_ANNOTATION_HANDLE)
            Return documentHandle
            Return annotationType
            Return page
            Return horPos
            Return verPos
            Return initialData
            Return newannotation
End Function
编译能通过,但是有一个问题就是我用FxCop调试的时候,看到最终返回的是一个Object类型的,这根我想要的有些出入,最终我想要得到的是 As Integer类型的XDW_AddAnnotation函数。所以就捆在这了
是否还是类型转换的问题了???真是谢谢你了,还请你指教!
[/Quote]
CType(object,integer)试试
wzuomin 2009-12-24
  • 打赏
  • 举报
回复
帮顶
siqian_11 2009-12-24
  • 打赏
  • 举报
回复
public static int XDW_AddAnnotation(Xdwapi.XDW_DOCUMENT_HANDLE documentHandle, int annotationType, int page, int horPos, int verPos, object initialData, ref Xdwapi.XDW_ANNOTATION_HANDLE newAnnotation);


这是我的数据元中的要求得到的类型,把这语句转vb语言实现,其实就是vb语言封装下,但是我好像没有弄明白怎么个原理,所以总是通不过!
我现在写完的vb语言的是这样的,
Public Class XdwapiWrapper

Public Shared Function XDW_AddAnnotation(ByVal documentHandle As XDW_DOCUMENT_HANDLE, _
ByVal annotationType As Integer, _
ByVal page As Integer, _
ByVal horPos As Integer, _
ByVal verPos As Integer, _
ByVal initialData As Object, _
ByRef newannotation As XDW_ANNOTATION_HANDLE)
Return documentHandle
Return annotationType
Return page
Return horPos
Return verPos
Return initialData
Return newannotation
End Function
编译能通过,但是有一个问题就是我用FxCop调试的时候,看到最终返回的是一个Object类型的,这根我想要的有些出入,最终我想要得到的是 As Integer类型的XDW_AddAnnotation函数。所以就捆在这了
是否还是类型转换的问题了???真是谢谢你了,还请你指教!
liquoryellow 2009-12-24
  • 打赏
  • 举报
回复
就是说XDW_DOCUMENT_HANDLE类型不能转换成整型了。。。比如字符串“asdf”转换成整型就出错。字符串“2”转换成整型就没问题。
波导终结者 2009-12-24
  • 打赏
  • 举报
回复
用CType(documentHandle,Integer)试试

如果不行,那就得看看你这XDW_DOCUMENT_HANDLE类型里的东西到底是啥了,如果本来就不能转换为整数的话,那就要另外处理,看你到底要哪部分的数据了
siqian_11 2009-12-24
  • 打赏
  • 举报
回复
Value of type 'FujiXerox.DocuWorks.Toolkit.Xdwapi.XDW_DOCUMENT_HANDLE' cannot be converted to 'Integer'.
根据你的提示我进行编译,还是提示的错误,是不是类型还是不对呀?
波导终结者 2009-12-24
  • 打赏
  • 举报
回复
Return CInt(documentHandle)

抱歉,是我上面写错了。
siqian_11 2009-12-24
  • 打赏
  • 举报
回复
楼上的,辛苦你了!

Public Shared Function XDW_AddAnnotation(ByVal documentHandle As XDW_DOCUMENT_HANDLE, _ ByVal verPos As Integer, _
ByVal initialData As Object, _
ByRef newannotation As XDW_ANNOTATION_HANDLE) As Integer
Return documentHandle
Return annotationType
Return page
Return horPos
Return verPos
Return initialData
Return newannotation

End Function


前面的定义的返回Integer类型不能变,能不能在Return documentHandle 这上面进行显示转换的,也就是把int 型转换成XDW_DOCUMENT_HANDLE,这样我应该怎么做呢?
万分感谢!~这问题已经困扰我一天了!
波导终结者 2009-12-24
  • 打赏
  • 举报
回复
CInt(XDW_FOUND_HANDLE)
siqian_11 2009-12-24
  • 打赏
  • 举报
回复
具体的隐式转换,要怎么转换呢,我今天以第一次研究VB还不太不明白!vb的语法和C# 有很大的不同啊!
谢谢大家了!
it_gz_xi 2009-12-24
  • 打赏
  • 举报
回复
foundHandle是XDW_FOUND_HANDLE类型的,
而你返回的类型是整型的
波导终结者 2009-12-24
  • 打赏
  • 举报
回复
ByRef foundHandle As XDW_FOUND_HANDLE
foundHandle 是一个XDW_FOUND_HANDLE的变量,而你这个函数返回的是一个Integer,你直接return当然不行,要显式转换
silentwins 2009-12-24
  • 打赏
  • 举报
回复
你的函数定义返回值是整型,可是实际返回一个其他类型,当然不行啦,改成:

Public Shared Function XDW_ExtractFromSfxDocument(ByRef foundHandle As XDW_FOUND_HANDLE)As XDW_FOUND_HANDLE
Return foundHandle

End Function
End Class

16,722

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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