Visual Basic Foro
Programación => Visual Basic .NET / C# => Mensaje iniciado por: ElChapu en Diciembre 09, 2012, 02:26:53 pm
-
hola buenos dias.
bueno eh estado tratando de pasar el modulo de luciano en vb2010
pero como no tengo mucho conocimientos en el vb2010 no le encuentro la vuelta.
tengo el error en este pedaso de codigo
Private Function ShellURL(ByVal sUrl As String) As String
Dim hOpen As Long, hFile As Long, sBuffer As String, ret As Long, sRead As String
sBuffer = Space(1024)
hOpen = InternetOpen(VB-RemoteSetting", INTERNET_OPEN_TYPE_DIRECT, vbNullString, vbNullString, 0)
'hFile = InternetOpenUrl(hOpen, sUrl, vbNullString, ByVal 0&, INTERNET_FLAG_RELOAD, ByVal 0&)
hFile = InternetOpenUrl(hOpen, sUrl, vbNullString, 0&, INTERNET_FLAG_RELOAD, 0&)
Do
InternetReadFile(hFile, sBuffer, 1024, ret)
sRead = sRead & Left(sBuffer, ret)
If ret = 0 Then Exit Do
Loop
ShellURL = Mid(sRead, 2)
InternetCloseHandle(hFile)
InternetCloseHandle(hOpen)
End Function
si lo pongo con ByVal 0& me dice "Se Esperaba una Expresion"
si lo pongo con 0& solamente, no me dice error
pero cuando ejecuto la aplicacion, me dice
El Ayudante para la depuración administrada 'PInvokeStackImbalance' ha detectado un problema en 'C:\Documents and Settings\Administrador\Mis documentos\Visual Studio 2010\Projects\ControlMu\ControlMu\bin\Debug\ControlMu.vshost.exe'.
Información adicional: Una llamada a la función PInvoke 'ControlMu!ControlMu.Remote::InternetOpen' impidió la correspondencia de la pila. Es posible que la razón sea que la firma PInvoke administrada no coincida con la firma de destino no administrada. Compruebe que la convención y los parámetros de llamada de la firma PInvoke coinciden con la firma no administrada de destino.
alguien lo pudo pasar a este modulo a vb2010?
o alguna ayuda para hacerlo funcionar...
gracias
-
seguramente la declaracion de la api esta mal, debe estar en formato Visual Basic 6, las apis cambian los tipos de datos en .NET.
igualmente no te recomiendo usar apis en .NET, justamente en .NET se trata de independizar de als apis de windows, para hacer eso podes usar WebRequest o WebClient.
saludos.
-
gracias seba por responder, ahora voy a ver mas sobre el tema.
otra cosa que quiero corrijir es que me equivoque de nombre, puse luciano, pero es leandro
jeje
saludos
-
viejo en esta linea:
hOpen = InternetOpen(VB-RemoteSetting", INTERNET_OPEN_TYPE_DIRECT, vbNullString, vbNullString, 0)
no deberia de ir "VB-RemoteSetting" en ves de VB-RemoteSetting
algo así
hOpen = InternetOpen("VB-RemoteSetting", INTERNET_OPEN_TYPE_DIRECT, vbNullString, vbNullString, 0)
o sin las comillas algo así
hOpen = InternetOpen(VB-RemoteSetting, INTERNET_OPEN_TYPE_DIRECT, vbNullString, vbNullString, 0)
solamente pregunta nada mas
-
jajaja, que pasada, Wolf tiene razón, quizá ese sea todo el problema.
-
Bueno, bueno, bueno !!!
Tiempo sin aparecer por esto lares !!! [Inconvenientes técnicos ajenos a la transmisión me impidieron darme un paseillo por aquí !!! Je, Je, Je !!!]
En fin, (de acuerdo con mi estimado Yvan), tienes razón wolf_kof, en la sentencia se ve la falta de una comilla ("), eso puede ser lo que este echando vaina !!!
Ahora en acuerdo con seba, hay que evitar todo lo posible el uso de las API's (si no hay un buen dominio de ellas, mira que te pueden dar resultados impredecibles !!!), aparte de que francamente (yo uso VB2008) creo que no hace falta su uso en .NET (en mi humilde opinión).
Saludos a todos !!!
Manuel F. Borrego S. 8)
Barcelona, Venezuela.