Select to view content in your preferred language

Errors when running Hillshade tool from within Visual Basic.Net code

909
3
05-30-2013 05:02 PM
MakanKuat
New Contributor
Hi guys,

This is my first attempt of trying to run a tool from within Visual Basic.Net code. I do not know whats wrong as when I tried to run it on ArcMap10, I got this error

Unhandled exception has occured in a component in your application. If you click Continue, the application will ignore this error and attempt to continue

Error HRESULT E _FAIL has been returned from a call to a COM component


I think there's something wrong with my code below. I tried to search for information on the internet but couldnt find any. Appreciate if anyone is kind enough to have a look and correct my code below please. Thank you.

Private Sub Calculate_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Calculate.Click

        ' Initialize the geoprocessor.
        Dim gp As Geoprocessor = New Geoprocessor()
        Dim hillshadeTool As HillShade = New HillShade

        '  Local variables
        Dim kl23_dem As Object = "kl23_dem"
        Dim HillShadeOut As Object = "C:\\Users\\HillShadeTry"


        Dim parameters As IVariantArray = New VarArray

        ' Populate the variant array with parameter values.
        parameters.Add(kl23_dem)
        parameters.Add(HillShadeOut)
        parameters.Add("315")
        parameters.Add("45")
        parameters.Add("NO_SHADOW")
        parameters.Add("1")

        gp.Execute("Hillshade", parameters, Nothing)


    End Sub
0 Kudos
3 Replies
martinmaretta
Deactivated User
Dim kl23_dem As Object = "kl23_dem"

I think you have to use Path to your raster layer  instead of name.

Private Sub Calculate_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Calculate.Click

' Initialize the geoprocessor.
Dim gp As Geoprocessor = New Geoprocessor()
Dim hillshadeTool As HillShade = New HillShade

' Local variables
Dim kl23_dem As Object = "C:\Users\kl23_dem"
Dim HillShadeOut As Object = "C:\Users\HillShadeTry"


Dim parameters As IVariantArray = New VarArray

' Populate the variant array with parameter values.
parameters.Add(kl23_dem)
parameters.Add(HillShadeOut)
parameters.Add("315")
parameters.Add("45")
parameters.Add("NO_SHADOW")
parameters.Add("1")

gp.Execute("Hillshade", parameters, Nothing)


End Sub
0 Kudos
MakanKuat
New Contributor
Thank you, I have tried changing the name to path but still the same error message was displayed. Any suggestion why this is so and how to correct this?

Dim kl23_dem As Object = "kl23_dem"

I think you have to use Path to your raster layer  instead of name.

Private Sub Calculate_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Calculate.Click

' Initialize the geoprocessor.
Dim gp As Geoprocessor = New Geoprocessor()
Dim hillshadeTool As HillShade = New HillShade

' Local variables
Dim kl23_dem As Object = "C:\Users\kl23_dem"
Dim HillShadeOut As Object = "C:\Users\HillShadeTry"


Dim parameters As IVariantArray = New VarArray

' Populate the variant array with parameter values.
parameters.Add(kl23_dem)
parameters.Add(HillShadeOut)
parameters.Add("315")
parameters.Add("45")
parameters.Add("NO_SHADOW")
parameters.Add("1")

gp.Execute("Hillshade", parameters, Nothing)


End Sub
0 Kudos
martinmaretta
Deactivated User
OK try this one:  use !!! "Hillshade_sa"  !!!
Dim gp As IGeoProcessor2 = New GeoProcessor
Dim parameters As IVariantArray = New VarArray


' Populate the variant array with parameter values.
parameters.Add("C:\Users\kl23_dem")
parameters.Add("C:\Users\HillShadeTry")
parameters.Add("315")
parameters.Add("45")
parameters.Add("NO_SHADOW")
parameters.Add("1")
gp.Execute("Hillshade_sa", parameters, Nothing)
0 Kudos