Jump to content
EneMy

[Resolvido] Problema em carregar uma DLL no VB

Recommended Posts

EneMy

Ola pessoal, eu estou tendo problemas em carregar uma DLL com o Visual Basic.

Quando eu tento carregar aparece o erro:

Run-time error '49': Bad DLL calling conversion

A declaração que estou usando e essa:

Public Declare Sub SR Lib "HookDll.dll" (ByVal Width As Integer, ByVal Height As Integer)

E o codigo e esse:

Call SR(1024, 768)

Na DLL esta assim:

HOOKDLL_API VOID SR(INT Width,INT Height)
{
g_XRES = Width;
g_YRES = Height;
}

Alguem poderia me ajudar ?

Share this post


Link to post
Share on other sites
NuGuN

Boas...

Esse erro normalmente tem a ver com o tipo de dos argumentos que estas a passar para a função, como por exemplo os tipos das variáveis não serem iguais, etc. Mas parece que esta tudo bem... Experimenta trocar o tipo das variáveis ou assim. Sinceramente assim à primeira vista não estou a ver qual é o problema ao certo  :P

Cumps

Share this post


Link to post
Share on other sites
EneMy

Não e uma DLL normal criada em C++

E nela tem outras funções que estão funcionando só essa que não tá. exemplo:

VB :

Citação
Public Declare Function IH Lib "HookDll.dll" () As Boolean

C++ DLL:

HOOKDLL_API BOOL IH()
{
  g_KBHook = SetWindowsHookEx(WH_KEYBOARD, KBHookProc, ghModule, 0);
  if( g_KBHook == NULL ){
    return FALSE;
  }
  return TRUE;
}

Tá difícil viu, já estou achando que vou ter que converter a source da DLL para um Class Module do VB =/

@NuGuN

Eu tentei trocar por todas variáveis possíveis e nada, também tentei tirar o ByVal..

Share this post


Link to post
Share on other sites
EneMy

Não tem como como eu vo add aparece a mensagem:

"Can´t add a referencia to the specified file".

Share this post


Link to post
Share on other sites
jpaulino

Humm mais umas questões:

1 - O DLL está registado no sistema (regsvr32.exe) ?

2 - O DLL está a funcionar, ou seja, já o testaste na liguagem que foi criado ?

3 - Caso não seja este o problema podes mostrar o código ?

Share this post


Link to post
Share on other sites
EneMy
E tentaste como COM e .NET ?

ahh eu não interpretei direito sua pergunta.. Eu não sei como criar uma dll no c++.net com COM..

Share this post


Link to post
Share on other sites
jpaulino

Quando adicionas referências podem ser do tipo .NET ou COM. Se não estiverem instaladas fazes o browse e vais buscar o teu ficheiro.

Share this post


Link to post
Share on other sites
EneMy

Sim eu ja tentei isso, mais a DLL não tem COM. Eu queria saber como criar uma DLL no .net que tenha COM ?

Share this post


Link to post
Share on other sites
jpaulino

Por falta de informação do utilizador e por existirem respostas aceitáveis à pergunta efectuada, esta questão foi marcada como resolvida.

Jorge Paulino

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.