'AddressOf' expression cannot be converted to 'Integer' because 'Integer' is not a delegate type, how do I fix this?

I upgraded a vb6 application to  vb.net.
But the upgrade compilation error says 'AddressOf' expression cannot be converted to 'Integer' because 'Integer' is not a delegate type

I found this to be the declaration:

Public Declare Function udfEnumDateFormats Lib "kernel32"  Alias "EnumDateFormatsA"(ByVal lpDateFmtEnumProc As Integer, ByVal Locale As Integer, ByVal dwFlags As Integer) As Integer


And here is the call:

Call udfEnumDateFormats(AddressOf udfEnumCalendarDate, lngLCID, g_lngDATE_SHORTDATE)


Public Function udfEnumCalendarDate(ByRef p_lngDateFormatString As Integer) As Integer
            g_objCombo.Items.Add(udfStringFromPointer(p_lngDateFormatString))
            udfEnumCalendarDate = 1
      End Function


How do I fix this?
stylelyfAsked:
Who is Participating?
 
Naitik GamitSoftware DeveloperCommented:
The length of Integers and Longs is different in VB6 than in VB.NET. So in .NET you need to use Integer anytime you used a Long in VB6.


look at this link:
http://stackoverflow.com/questions/2463395/addressof-vb6-to-vb-net
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.