ďťż

89330_1

Lemur zaprasza

Strona: [  >  ]  z  1     










Autor
Temat: C++ --> VB











DJK






Typ:
neutral

Postów: 871

Zarejestrowany: Feb 2004





C++ --> VB


Witam

Może mi ktoś przekształcić te zapisy w C:

DWORD dwSize = 0x10000 * 0x10;
char * base;
base = (char*)malloc(dwSize*2);
ptr2 = base + dwSize;

No wiadomo że DWORD to odpowidnik LONG'a w VB.

Pozdrawiam



_____________________________________________
Jeśli można coś zrobić w sposób optymalny to czemu nie






18-12-2004 23:48



 
    














marcin_an

Forumowicz






Typ:
neutral

Postów: 1265

Zarejestrowany: Mar 2004







Co prawda ja tego nie przekształcę (no chyba, że linijki 2 i 4 ), ale jedna uwaga: DWORD nie ma w VB odpowiednika.



_____________________________________________
Popieram losmaca:
1) Ludzie, dbajcie o polszczyznę!!! 
2) Ludzie, zadawajcie kompletne pytania, a nie - rzucacie ochłapy i trzeba się domyślać o co chodzi!!!
___
NOWE FORUM






19-12-2004 03:26



 
    














DJK






Typ:
neutral

Postów: 871

Zarejestrowany: Feb 2004







Jak nie ma a Long  - zajmuje tyle samo bajtów co DWORD



_____________________________________________
Jeśli można coś zrobić w sposób optymalny to czemu nie






19-12-2004 10:27



 
    














losmac

"profesorek"






Typ:
neutral

Postów: 758

Zarejestrowany: May 2003








DWORD dwSize = 0x10000 * 0x10;
char * base;
base = (char*)malloc(dwSize*2);
ptr2 = base + dwSize;


W pierwszej linii definicja i przypisanie wartości dla zmiennej licznbowej
Linia druga to utworzenie zmiennej typu char (string w VB), utworzenie wskaźnika do tej zmiennej.
W trzeciej linii zostaje określona wielkość zmiennej typu char, sama zmienna jest nieokreśona (pusta), a jedynie zostaje jej zarezerwowana wielkość
Linii czwartej Ci nie przetłumaczę, bo nie wiem jakiego typu jest 'ptr'...



_____________________________________________
POSTULATY STARUSZKA:
1) Ludzie, dbajcie o polszczyznę!!!
2) Ludzie, zadawajcie kompletne pytania, a nie rzucacie ochłapy i trzeba się domyślać o co chodzi!!!

Powodzenia
Maciej Łoś






19-12-2004 12:52



 
    














marcin_an

Forumowicz






Typ:
neutral

Postów: 1265

Zarejestrowany: Mar 2004







DJK: 2-znakowy String również zajmuje 32 bity a nie jest to jednak odpowiednik DWORD'a . Nie chodzi tylko o rozmiar, ale także o wykonywane operacje. DWORD przechowuje liczby całkowite od 0 do 4294967295, podczas, gdy Long od -2147483648 do 2147483647 . Żeby przechować liczbę z DWORD we wbudowanej zmiennej VB potrzeba np. zmiennej typu Currency. Ale ta z koleji jest 64-bitowa i nie da się na niej wykonać takich operacji bitowych jak na DWORD. Dlatego mówię, że nie ma odpowiednika. Oczywiscie zawsze można spróbować stworzyć (ostatnio w którymś wątku o GG było).



_____________________________________________
Popieram losmaca:
1) Ludzie, dbajcie o polszczyznę!!! 
2) Ludzie, zadawajcie kompletne pytania, a nie - rzucacie ochłapy i trzeba się domyślać o co chodzi!!!
___
NOWE FORUM






19-12-2004 15:15



 
    














DJK






Typ:
neutral

Postów: 871

Zarejestrowany: Feb 2004







Ja dalej uważam tak jak uważam - zawsze jak widzę strukturę napisaną w C++ to ta sama struktura zapisana jest w taki sposób że zmienna która pod C++ jest DWORD, w VB jest jako LONG.

Do losmaca:

To że to czy tamto to przypisanie to jest dla mnie oczywiste. Chodzi mi o to jak zapisać to w VB - jeżeli chodzi o pierwszą zmienna to już wiem że jest to wartość 1048576 ale co z tym "malloc"

P.S. ptr jest tego samego typu co base


[Post edytowany dnia 19-12-2004 16:39 przez DJK]


_____________________________________________
Jeśli można coś zrobić w sposób optymalny to czemu nie






19-12-2004 16:37



 
    














marcin_an

Forumowicz






Typ:
neutral

Postów: 1265

Zarejestrowany: Mar 2004







Pewnie masz na myśli np. deklaracje typów dla API itd. . Tam wynika to z konieczności zachowania tego samego układu pamieci - to wszystko. Ale nie jest to to samo. Owszem - gdyby rozpatrywać tylko pierwsze 31 bitów - zachowują się identycznie. Ale problemy powstają, gdy ostatni bit jest równy 1. Dla DWORD znaczy to tyle, co dodanie 2^31. Natomiast zapalenie ostatniego bitu w Long oznacza wartość ujemną - na dodatek zanegowaną.



_____________________________________________
Popieram losmaca:
1) Ludzie, dbajcie o polszczyznę!!! 
2) Ludzie, zadawajcie kompletne pytania, a nie - rzucacie ochłapy i trzeba się domyślać o co chodzi!!!
___
NOWE FORUM






19-12-2004 17:15



 
    














losmac

"profesorek"






Typ:
neutral

Postów: 758

Zarejestrowany: May 2003







...malloc... powiadzasz

To, jak już powiedziałem, określenie wielkości zmiennej typu char.
Czyli: Dim zmienna As String *30

lub
Dim zmienna As String
zmienna = String$(512, vbNullChar)



_____________________________________________
POSTULATY STARUSZKA:
1) Ludzie, dbajcie o polszczyznę!!!
2) Ludzie, zadawajcie kompletne pytania, a nie rzucacie ochłapy i trzeba się domyślać o co chodzi!!!

Powodzenia
Maciej Łoś






19-12-2004 22:02



 
    














losmac

"profesorek"






Typ:
neutral

Postów: 758

Zarejestrowany: May 2003







Więcej na ten temat poczytaj



_____________________________________________
POSTULATY STARUSZKA:
1) Ludzie, dbajcie o polszczyznę!!!
2) Ludzie, zadawajcie kompletne pytania, a nie rzucacie ochłapy i trzeba się domyślać o co chodzi!!!

Powodzenia
Maciej Łoś






19-12-2004 22:11



 
    













Wszystkich odpowiedzi: 8 :: Maxymalnie na stronę: 20










Strona: [  >  ]  z  1     
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • teen-mushing.xlx.pl
  • Wątki
    Powered by wordpress | Theme: simpletex | © Lemur zaprasza