"Any" em VB6 equivale a o que em VB.net?

E ae pessoal?

Tô com uma .dll aqui em VB6 mas minha aplicação é em .net e eu precisava que ela funcionasse.

No fundo eu precisava alterar ela e ae sim incluí-la e, para isso, eu precisava transformar ela de VB6 pra .net.

O Visual Studio alterou bastante coisa mas nos casos tipo:

Ele não alterou e marcou com um erro.

Eu dei uma googladinha mas o máximo que eu encontrei foi “se prepare para refazer suas APIs”.

Como a esperança é a última que morre, vim perguntar pra vcs :wink:

Achei isso aqui, acho que te esclarece o que precisa fazer:

http://www.macoratti.net/vb6_pnet.htm

[quote=dudaskank]Achei isso aqui, acho que te esclarece o que precisa fazer:

http://www.macoratti.net/vb6_pnet.htm[/quote]

O título é amigável, deixa eu ler pra ver se resolve :wink:

[quote]Outro caso que vai requerer que você altere o código é a utilização da expressão As Any como tipo de dado na declaração da API. Este termo é usado para passar uma variável que pode ser uma String ou Null . O VB.NET não suporta As Any.

Podemos resolver isto usando duas versões da API : uma usando o tipo String e outra usando o tipo Long no lugar de As Any. Por exemplo , a API GetPrivateProfileString possui o parâmetro lpKeyName do tipo As Any

Private Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long
Podemos substituir As Any usando a declaração da API em duas versões : uma que aceita um Long e outra que aceita uma string: Vejamos as duas versões:

Private Declare Function GetPrivateProfileStringKey Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As String, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long Private Declare Function GetPrivateProfileStringNullKey Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Long, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long
Quando você quiser passar um valor Null para a API , basta usar a versão - GetPrivateProfileStringNullKey - fazendo isto a migração ocorre sem problemas.

Mesmo tomando todos estes cuidados haverá situações que poderão exigir que você faça alterações no código durante o processo de migração. Isto ocorre em situações de uso das APIs para criar e gerenciar Threads , subclasses do Windows , acesso a fila de mensagem , etc… Não tem jeito , cada caso deve ser analisado isoladamente e o ajuste deve ser feito levando-se em conta a melhor solução.[/quote]

Hora do desespero :cry:

Na minha aplicação DE ACESSO A FILA DE MENSAGEM eu infelizmente tenho ‘Any’ em dúzias de variáveis…

Como a preguiça ruleia, não vou refazer a API não.

Vou tentar rezar por uma solução mais rápida.

Muito obrigado :!: