Strona: [  << <   1   > >>  ]  z  1     
Autor Temat: VC++ DLL w VB6
skmskm




Typ: neutral
Postów: 2
Zarejestrowany: Apr 2004
VC++ DLL w VB6

Mam problem prubuje połonczyć kod w dll napisany w VC++ i nie umiem przesłać paramerów do funkcji z VB6 do VC++.
ale spowrotem wszystko działa odebrać potrafie.
Nawet po znaku już prubowałem przesyłać ale nic z tego.I nie kierujcie mnie na Gogle i jakieś artykuły bo niema niczego w necie co by działało.

kod VC++:
long __stdcall Funkcja(char* parametr)
{
  return strlen(parametr);
}
kod w VB6:
private declare function Funkcja lib "xxx.dll" _
(parametr as string) as long

'to w buttonie
msgbox Funkcja("jakiś text." ) & " jakiś text."


_____________________________________________
I love programing

08-04-2004 14:34
Pokaż profil skmskm  Wyślij email do skmskm   Odwiedź stronę skmskm  
marcinowy




Typ: neutral
Postów: 3
Zarejestrowany: Apr 2004

Ja juz mam podobny proble mza soba
Musisz w VC++ stworzyc w projekcie plik definicji funkcji eksportowanych xxx,def, a w nim, np.

LIBRARY KONVFL

EXPORTS

LongToFloat  @1
FloatToLong  @2

Z kolei w pliku xxx.cpp, np. tak:

#include "stdafx.h"

float __stdcall LongToFloat(long data);
long __stdcall FloatToLong(float data);

BOOL APIENTRY DllMain( HANDLE hModule,
                      DWORD  ul_reason_for_call,
                      LPVOID lpReserved
      )
{
switch(ul_reason_for_call)
    {
case DLL_PROCESS_ATTACH:
  {}
  break;
    case DLL_PROCESS_DETACH:
  {}
  break;
    }
return TRUE;
}

float __stdcall LongToFloat(long data)
{
float *pf;
long *pl;
pl=&data;
pf=(float *)pl;
return(*pf);
}

long __stdcall FloatToLong(float data)
{
float *pf;
long *pl;
pf=&data;
pl=(long *)pf;
return(*pl);
}

W VB definiujesz funkcje tak jak w przypadku innych dll-i (wielkosc liter)

19-04-2004 13:05
Pokaż profil marcinowy  Wyślij email do marcinowy   
skmskm




Typ: neutral
Postów: 2
Zarejestrowany: Apr 2004

Ale ja mam plik Def zdefiniowany
a tak wogule zmieniłem VB6 na VB .NET
w necie działa bez zarzutu


_____________________________________________
I love programing

20-04-2004 09:28
Pokaż profil skmskm  Wyślij email do skmskm   Odwiedź stronę skmskm  
marcinowy




Typ: neutral
Postów: 3
Zarejestrowany: Apr 2004

Inna przyczyna moze byc to, ze biblioteka nie zostala zarejestrowana w systemie. Aplikacja moze funkcjonowac rowniez bez rejestracji pod warunkiem, ze bedzie w tym samym katalogu co pliki projektu. W moim wypadku po umieszczeniu w katalogu projektu dll-a program dzialal dopiero po powtornym otworzeniu projektu. Projekt tworzony byl w VB6.

20-04-2004 17:12
Pokaż profil marcinowy  Wyślij email do marcinowy   
Wszystkich odpowiedzi: 3 :: Maxymalnie na stronę: 20
Strona: [  << <   1   > >>  ]  z  1