dll em C#?
Enviado: 14 Jan 2011 20:02
Alguem sabe com ler Dll desenvolvida em C# ?
Código: Selecionar todos
******************
FUNCTION SERIAL_HD
******************
Local TDLL:=LoadLibrary("DiskSerial.dll"), RETPORTA1, lpBuffer:=SPACE(512)
IF TDLL=0
RETURN("Erro na DLL")
FreeLibrary( TDLL )
ENDIF
RETPORTA1:=DLLCALL(TDLL,32,"GetSerialNumber",0,@lpBuffer )
FreeLibrary( TDLL )
RETURN(lpBuffer)
Código: Selecionar todos
/*
* $Id: testdll.prg 14688 2010-06-04 13:32:23Z vszakats $
*/
/*
* Harbour Project source code:
* DLL call demonstration.
*
* Copyright 2008 Viktor Szakats (harbour.01 syenar.hu)
* www - http://harbour-project.org
*
*/
#include "simpleio.ch"
#include "dll.ch"
#define MAX_PATH 260
PROCEDURE Main()
LOCAL hDLL
LOCAL cData
#if defined( __PLATFORM__WINDOWS )
IF hb_FileExists( "pscript.dll" )
hDLL := DllLoad( "pscript.dll" )
cData := Space( 24 )
DllCall( hDll, DLL_OSAPI, "PSGetVersion", @cData )
? ">" + cData + "<"
DllUnload( hDLL )
// ; Testing failure 1
hDLL := DllLoad( "pscript.dll" )
cData := Space( 24 )
DllCall( hDll, DLL_OSAPI, "PSGet__Version", @cData )
? ">" + cData + "<"
DllUnload( hDLL )
ENDIF
// ; Testing failure 2
hDLL := DllLoad( "nothere.dll" )
cData := Space( 24 )
DllCall( hDll, NIL, "PSGetVersion", @cData )
? cData
DllUnload( hDLL )
Código: Selecionar todos
FUNCTION MAIN
#include "hbdyn.ch"
cCep:="20735050"
nHandleDLL:=HB_LibLoad("UrlMon.dll")
nStatus:=HB_DynCall( { "URLDownloadToFileA", nHandleDLL,HB_DYN_CALLCONV_STDCALL},0,"http://cep.republicavirtual.com.br/web_cep.php?cep=" + cCep + "&formato=xml","LOGRADOURO.XML",0,0)
HB_LibFree(nHandleDLL)
IF File("LOGRADOURO.XML")
cBuf:=HB_AnsiToOem(FileStr("LOGRADOURO.XML"))
ELSE
Alert("A consulta de CEP est indispon¡vel.",{"Ok"})
RETURN .T.
ENDIF
cRes:=Upper(SubStr(cBuf, AT('<resultado>', cBuf) + 11, AT('</resultado>', cBuf) - (AT('<resultado>', cBuf) + 11)))
IF cRes = "1"
cResTxt := Upper(SubStr(cBuf, AT('<resultado_txt>', cBuf) + 15, AT('</resultado_txt>', cBuf) - (AT('<resultado_txt>', cBuf) + 15)))
cTipo := Upper(SubStr(cBuf, AT('<tipo_logradouro>', cBuf) + 17, AT('</tipo_logradouro>', cBuf) - (AT('<tipo_logradouro>', cBuf) + 17)))
cEnd := RetiraAcentos(Upper(cTipo+" "+SubStr(cBuf, AT('<logradouro>', cBuf) + 12, AT('</logradouro>', cBuf) - (AT('<logradouro>', cBuf) + 12))))
cBai := RetiraAcentos(Upper(SubStr(cBuf, AT('<bairro>', cBuf) + 8, AT('</bairro>', cBuf) - (AT('<bairro>', cBuf) + 8))))
cCid := RetiraAcentos(Upper(SubStr(cBuf, AT('<cidade>', cBuf) + 8, AT('</cidade>', cBuf) - (AT('<cidade>', cBuf) + 8))))
cUF := Upper(SubStr(cBuf, AT('<uf>', cBuf) + 4, 2))
ELSE
cResTxt := "O CEP "+Transform(cCep,"@R 99.999-999")+" é Inválido."
cTipo := ""
cEnd := ""
cBai := ""
cCid := ""
cUF := ""
ENDIF
cMess += "Resposta do servidor.: "+cResTxt + HB_OsNewLine()
cMess += "Tipo de logradouro...: "+HB_OemtoAnsi(cTipo) + HB_OsNewLine()
cMess += "Logradouro...........: "+HB_OemtoAnsi(cEnd) + HB_OsNewLine()
cMess += "Bairro...............: "+HB_OemtoAnsi(cBai) + HB_OsNewLine()
cMess += "Cidade...............: "+HB_OemtoAnsi(cCid) + HB_OsNewLine()
cMess += "UF...................: "+HB_OemtoAnsi(cUF) + HB_OsNewLine()
IF cRes == "0"
cVar0 :=Space(8)
cCid :="RIO DE JANEIRO"
cUF :="RJ"
ENDIF
RETURN Nil
FUNCTION RetiraAcentos(cPalavra)
LOCAL i:=0,;
cAcento:= '',;
cRetiraAcento:= ''
FOR I = 1 To Len(cPalavra)
cAcento:=SUBST(cPalavra, I, 1)
DO CASE
CASE cAcento $ "µÇ¶·Ž"
cAcento = "A"
CASE cAcento $ "ÓÔÒ"
cAcento = "E"
CASE cAcento $ "ÖØÞ×"
cAcento = "I"
CASE cAcento $ "àåâ™"
cAcento = "O"
CASE cAcento $ "éëêš"
cAcento = "U"
CASE cAcento $ " ƃ…„"
cAcento = "a"
CASE cAcento $ "‚‰Šˆ"
cAcento = "e"
CASE cAcento $ "¡‹Œ"
cAcento = "i"
CASE cAcento = "¢ä“”"
cAcento = "o"
CASE cAcento $ "£—–"
cAcento = "u"
CASE cAcento $ "‡"
cAcento = "c"
CASE cAcento $ "€"
cAcento = "C"
ENDCASE
cRetiraAcento += cAcento
NEXT
RETURN cRetiraAcento