DDL QUE NAO PODE SER REFERENCIADA - OFF
Como funciona as DLLs que não são possÃveis referenciá-las no VB (Ex.: DLLs de programas comerciais)?
Como fazer um programa executar uma função dessa DLL?
Como descobrir as funções dessa DLL?
é possÃvel criar uma DLL que não pode ser referenciada pelo VB (somente meu programa poderá utilizá-la) via VB?
Como fazer um programa executar uma função dessa DLL?
Como descobrir as funções dessa DLL?
é possÃvel criar uma DLL que não pode ser referenciada pelo VB (somente meu programa poderá utilizá-la) via VB?
Se o seu problema for restringir o uso de uma DLL sua, pq vc não coloca uma propriedade SENHA a qual é lida para validar o uso ?
Na verdade, minha intensão não é proteger minha DLL, e sim entender como uma DLL (de qualquer programa comercial) não pode ser refernciada e como esses mesmos programas a utilizam
O Negocio eo Seguninte
Quando vc cria uma dll em vb vc pode Bloquer o Tipo de Acesso
vc deixar para qu so o vb tenha acesso ou Qualquer outra Linguagem tenha Acesso ex: Delphi só que vc teria que Criar uma documentação Especifincando suas Funções Internas
Ja para Acessar Dll's em vb Criadas por outras Linguagens vc Teria que Saber Quais sao as Funções e Declaralas com o comando
leia Isso
Instrução Declare:
Usada no nÃvel de módulo para declarar referências aprocedimentos externos em umabiblioteca de vÃnculo dinà ¢mico (DLL).
Sintaxe 1
[Public | Private] Declare Sub name Lib "libname" [Alias "aliasname"] [([arglist])]
Sintaxe 2
[Public | Private] Declare Function name Lib "libname" [Alias "aliasname"] [([arglist])] [As type]
A sintaxe da instrução Declare tem as seguintes partes:
Parte Descrição
Public Opcional. Usada para declarar procedimentos que estão disponÃveis para todos os outros procedimentos em todos osmódulos.
Private Opcional. Usada para declarar procedimentos que estão disponÃveis apenas dentro do módulo no qual adeclaração é feita.
Sub Opcional (Sub ou Function deve aparecer). Indica que o procedimento não retorna um valor.
Function Opcional (Sub ou Function deve aparecer). Indica que o procedimento retorna um valor que pode ser usado em umaexpressão.
name Necessário. Qualquer nome de procedimento válido. Observe que os pontos de entrada da DLL diferenciam maiúsculas de minúsculas.
Lib Necessário. Indica que uma DLL ou um recurso de código contém o procedimento que está sendo declarado. A cláusula Lib é Necessário para todas as declarações.
libname Necessário. Nome da DLL ou do recurso de código que contém o procedimento declarado.
Alias Opcional. Indica que o procedimento que está sendo chamado possui outro nome na DLL. Isso é útil quando o nome do procedimento externo é o mesmo de uma palavra-chave. Você também poderá usar Alias quando um procedimento de DLL tiver o mesmo nome de umavariável pública,constante ou qualquer outro procedimento no mesmoescopo. Alias também será útil se qualquer caractere do nome do procedimento da DLL não for permitido pela convenção de nomenclatura da DLL.
aliasname Opcional. Nome do procedimento da DLL ou recurso de código. Se o primeiro caractere não for o sinal numérico (#), será o nome do ponto de entrada do procedimento na DLL. Se (#) for o primeiro caractere, todos os caracteres seguintes deverão indicar o número ordinal do ponto de entrada do procedimento.
arglist Opcional. Lista de variáveis que representamargumentos passados para o procedimento quando ele é chamado.
type Opcional.Tipo de dados do valor retornado por um procedimento Function; pode serByte,Boolean,Integer,Long,Currency,Single,Double,Decimal (não suportado no momento),Date,String (somente de comprimento variável),Variant, umtipo definido pelo usuário ou umtipo de objeto.
O argumento possui a sintaxe e as partes abaixo:
[Optional] [ByVal | ByRef] [ParamArray] varname[( )] [As type]
Parte Descrição
Optional Opcional. Indica que um argumento não é necessário. Se usada, todos os argumentos subseqà ¼entes em arglist também deverão ser opcionais e declarados usando a palavra-chave Optional. Optional não poderá ser usado para qualquer argumento se ParamArray for usado.
ByVal Opcional. Indica que o argumento é passadopor valor.
ByRef Indica que o argumento é passadopor referência. ByRef representa o padrão no Visual Basic.
ParamArray Opcional. Usada apenas como o último argumento em arglist para indicar que o argumento final é umamatriz Optional de elementos Variant. A palavra-chave ParamArray permite que você forneça um número arbitrário de argumentos. A palavra-chave ParamArray não pode ser usada com ByVal, ByRef ou Optional.
varname Necessário. Nome da variável que representa o argumento passado para o procedimento; segue as convenções de nomenclatura padrão de variável.
( ) Necessário para variáveis de matriz. Indica que é uma matriz.
type Opcional. Tipo de dados do argumento passado para o procedimento; pode ser Byte, Boolean, Integer, Long, Currency, Single, Double, Decimal (não suportado no momento), Date, String (somente de comprimento variável), Object, Variant, um tipo definido pelo usuário ou um tipo de objeto.
Comentários
Para procedimentos Function, o tipo de dados do procedimento determina o tipo de dados retornado. Você pode usar uma cláusula As seguindo para especificar o tipo de retorno da função. Dentro de você pode usar uma cláusula As para especificar o tipo de dados de qualquer um dos argumentos passados para o procedimento. Além de especificar qualquer tipo de dados padrão, você pode especificar As Any em para inibir a verificação de tipo e permitir que qualquer tipo de dados seja passado para o procedimento.
Parênteses vazios indicam que o procedimento Sub ou Function não possui argumentos e que o Visual Basic deve garantir que nenhum argumento será passado. No exemplo abaixo, First não possui argumentos. Se você usar argumentos em um chamada de First, ocorrerá um erro:
Declare Sub First Lib "MyLib" ()
Se você incluir uma lista de argumentos, o tipo e o número de argumentos serão verificados sempre o procedimento for chamado. No exemplo abaixo, First aceita um argumento Long:
Declare Sub First Lib "MyLib" (X As Long)
Observação A presença de seqà ¼ências de caracteres de comprimento fixo na lista de argumentos de uma instrução Declare não é permitida; apenas seqà ¼ências de caracteres de comprimento variável podem ser passadas para procedimentos. Seqà ¼ências de caracteres de comprimento fixo podem aparecer como argumentos de procedimentos, mas serão convertidas em seqà ¼ências de caracteres de comprimento variável antes de serem passadas.
Observação A constante vbNullString é usada para chamar procedimentos externos, quando o procedimento externo exige uma seqà ¼ência de caracteres cujo valor seja zero. Isso é diferente de uma seqà ¼ência de caracteres de comprimento zero ("").
Espero ter Ajudado
Quando vc cria uma dll em vb vc pode Bloquer o Tipo de Acesso
vc deixar para qu so o vb tenha acesso ou Qualquer outra Linguagem tenha Acesso ex: Delphi só que vc teria que Criar uma documentação Especifincando suas Funções Internas
Ja para Acessar Dll's em vb Criadas por outras Linguagens vc Teria que Saber Quais sao as Funções e Declaralas com o comando
leia Isso
Instrução Declare:
Usada no nÃvel de módulo para declarar referências aprocedimentos externos em umabiblioteca de vÃnculo dinà ¢mico (DLL).
Sintaxe 1
[Public | Private] Declare Sub name Lib "libname" [Alias "aliasname"] [([arglist])]
Sintaxe 2
[Public | Private] Declare Function name Lib "libname" [Alias "aliasname"] [([arglist])] [As type]
A sintaxe da instrução Declare tem as seguintes partes:
Parte Descrição
Public Opcional. Usada para declarar procedimentos que estão disponÃveis para todos os outros procedimentos em todos osmódulos.
Private Opcional. Usada para declarar procedimentos que estão disponÃveis apenas dentro do módulo no qual adeclaração é feita.
Sub Opcional (Sub ou Function deve aparecer). Indica que o procedimento não retorna um valor.
Function Opcional (Sub ou Function deve aparecer). Indica que o procedimento retorna um valor que pode ser usado em umaexpressão.
name Necessário. Qualquer nome de procedimento válido. Observe que os pontos de entrada da DLL diferenciam maiúsculas de minúsculas.
Lib Necessário. Indica que uma DLL ou um recurso de código contém o procedimento que está sendo declarado. A cláusula Lib é Necessário para todas as declarações.
libname Necessário. Nome da DLL ou do recurso de código que contém o procedimento declarado.
Alias Opcional. Indica que o procedimento que está sendo chamado possui outro nome na DLL. Isso é útil quando o nome do procedimento externo é o mesmo de uma palavra-chave. Você também poderá usar Alias quando um procedimento de DLL tiver o mesmo nome de umavariável pública,constante ou qualquer outro procedimento no mesmoescopo. Alias também será útil se qualquer caractere do nome do procedimento da DLL não for permitido pela convenção de nomenclatura da DLL.
aliasname Opcional. Nome do procedimento da DLL ou recurso de código. Se o primeiro caractere não for o sinal numérico (#), será o nome do ponto de entrada do procedimento na DLL. Se (#) for o primeiro caractere, todos os caracteres seguintes deverão indicar o número ordinal do ponto de entrada do procedimento.
arglist Opcional. Lista de variáveis que representamargumentos passados para o procedimento quando ele é chamado.
type Opcional.Tipo de dados do valor retornado por um procedimento Function; pode serByte,Boolean,Integer,Long,Currency,Single,Double,Decimal (não suportado no momento),Date,String (somente de comprimento variável),Variant, umtipo definido pelo usuário ou umtipo de objeto.
O argumento possui a sintaxe e as partes abaixo:
[Optional] [ByVal | ByRef] [ParamArray] varname[( )] [As type]
Parte Descrição
Optional Opcional. Indica que um argumento não é necessário. Se usada, todos os argumentos subseqà ¼entes em arglist também deverão ser opcionais e declarados usando a palavra-chave Optional. Optional não poderá ser usado para qualquer argumento se ParamArray for usado.
ByVal Opcional. Indica que o argumento é passadopor valor.
ByRef Indica que o argumento é passadopor referência. ByRef representa o padrão no Visual Basic.
ParamArray Opcional. Usada apenas como o último argumento em arglist para indicar que o argumento final é umamatriz Optional de elementos Variant. A palavra-chave ParamArray permite que você forneça um número arbitrário de argumentos. A palavra-chave ParamArray não pode ser usada com ByVal, ByRef ou Optional.
varname Necessário. Nome da variável que representa o argumento passado para o procedimento; segue as convenções de nomenclatura padrão de variável.
( ) Necessário para variáveis de matriz. Indica que é uma matriz.
type Opcional. Tipo de dados do argumento passado para o procedimento; pode ser Byte, Boolean, Integer, Long, Currency, Single, Double, Decimal (não suportado no momento), Date, String (somente de comprimento variável), Object, Variant, um tipo definido pelo usuário ou um tipo de objeto.
Comentários
Para procedimentos Function, o tipo de dados do procedimento determina o tipo de dados retornado. Você pode usar uma cláusula As seguindo para especificar o tipo de retorno da função. Dentro de você pode usar uma cláusula As para especificar o tipo de dados de qualquer um dos argumentos passados para o procedimento. Além de especificar qualquer tipo de dados padrão, você pode especificar As Any em para inibir a verificação de tipo e permitir que qualquer tipo de dados seja passado para o procedimento.
Parênteses vazios indicam que o procedimento Sub ou Function não possui argumentos e que o Visual Basic deve garantir que nenhum argumento será passado. No exemplo abaixo, First não possui argumentos. Se você usar argumentos em um chamada de First, ocorrerá um erro:
Declare Sub First Lib "MyLib" ()
Se você incluir uma lista de argumentos, o tipo e o número de argumentos serão verificados sempre o procedimento for chamado. No exemplo abaixo, First aceita um argumento Long:
Declare Sub First Lib "MyLib" (X As Long)
Observação A presença de seqà ¼ências de caracteres de comprimento fixo na lista de argumentos de uma instrução Declare não é permitida; apenas seqà ¼ências de caracteres de comprimento variável podem ser passadas para procedimentos. Seqà ¼ências de caracteres de comprimento fixo podem aparecer como argumentos de procedimentos, mas serão convertidas em seqà ¼ências de caracteres de comprimento variável antes de serem passadas.
Observação A constante vbNullString é usada para chamar procedimentos externos, quando o procedimento externo exige uma seqà ¼ência de caracteres cujo valor seja zero. Isso é diferente de uma seqà ¼ência de caracteres de comprimento zero ("").
Espero ter Ajudado
Tópico encerrado , respostas não são mais permitidas