ďťż
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 |