drzajnek Napisano Wrzesień 6, 2008 Zgłoś Share Napisano Wrzesień 6, 2008 witam. mam dwa problemy i proszę o pomoc. pierwszy dotyczy konkretnie Visual C++. chcę zrealizować coś takiego: program uruchamia inną aplikacją, dołączając do niej parametry określone przez użytkownika (np. wartości wpisane w textBox itp). moje przemyślenia odnośnie tego zagadnienia: wiem już, że celem otworzenia przez aplikację innej aplikacji można skorzystać z funkcji ShellExecute (albo ShellExecuteA). KODHINSTANCE ShellExecute( HWND hwnd, LPCTSTR lpOperation, LPCTSTR lpFile, LPCTSTR lpParameters, LPCTSTR lpDirectory, INT nShowCmd ); jak wpiszę od razu, że argument lpParameters jest np. "20", to wszystko jest ok. ale co, gdy chcę użytkownikowi pozwolić, żeby to on określił ten parametr? żeby program skorzystał z zawartości np. textBoxa i wykorzystał ją jako parametr. typ LPCSTR (z niego korzysta funkcja ShellExecuteA), Long Pointer to Constant STRing - constant string? czyli nie można tu żadnych zmiennych zastosować? jeśli nie da się zrealizować tego zadania przy użyciu funkcji ShellExecute czy ShellExecuteA, to czy istnieje jakakolwiek procedura w VC++, która na to pozwoli? jest też bodaj CreateProcess, ale w moim wypadku daje efekt podobny do powyższego, jak nie słabszy. -------- druga sprawa dotyczy również C++, w moim wypadku chodzi o aplikację OpenGL, ale przypuszczam, że to nie ma wielkiego znaczenia. chcę przypisać zmiennej typu int wartość parametru (który jak wiadomo jest stringiem). wydaje mi się, że powinno to wyglądać następująco: KODint x = (int)__argv[1]; nie ma tu żadnego błędu, program się kompiluje.. no ale nie działa, nie przypisuje zmiennej x wartości podanego parametru. podobnie nie działa "uproszczona wersja": KODif(__argv[1]=="10") x = 10; mimo że uruchamiam program z parametrem 10, wynik porównania jest negatywny. nigdzie nie mogę znaleźć informacji, które by pomogły mi rozwikłać ten problem. Link do komentarza Udostępnij na innych stronach More sharing options...
Blind Napisano Wrzesień 6, 2008 Zgłoś Share Napisano Wrzesień 6, 2008 debuger prawde ci powie. www.blinder.pl - Blog Link do komentarza Udostępnij na innych stronach More sharing options...
Iskar Napisano Wrzesień 7, 2008 Zgłoś Share Napisano Wrzesień 7, 2008 Pytanie 1.: zamień to wszystko na string, potem tylko zmiennaString.c_str() w tym Twoim ShellExecute. Pytanie 2: to nie działa, bo nie da się tak zrzutowac. Albo użyj atoi, poczytaj na necie co to za funkcja, albo zamień to na string i potem funkcją StrToInt, do której link masz tutaj: http://www.unit1.pl/95,txt Nie działa Ci też to porównywanie, po w ten sposób porównujesz wskaźniki, nie faktyczną "treść" tekstu. Jak chcesz porównywać, to musisz skorzystać z funkcji cmpstr czy jakoś tak, nie pamiętam jak to się nazywa, pogooglaj. I w ogóle to szpinak na obiad ze nie googlanie, o! Hm. Tylko nie mów, że lubisz szpinak ; p Link do komentarza Udostępnij na innych stronach More sharing options...
krajew4 Napisano Wrzesień 7, 2008 Zgłoś Share Napisano Wrzesień 7, 2008 Nie cmpstr tylko strcmp strcmp(s1,s2) == a; a = 0 ; s1 == s2 a > 0 ; s1 > s2 a My life for Aiur! Link do komentarza Udostępnij na innych stronach More sharing options...
Force Napisano Wrzesień 7, 2008 Zgłoś Share Napisano Wrzesień 7, 2008 jacie, użyj po prostu stringi i po sprawie, a nie jakieś metody 20 letnie Baza tysięcy lotnisk: http://airportsbase.com Link do komentarza Udostępnij na innych stronach More sharing options...
drzajnek Napisano Wrzesień 16, 2008 Autor Zgłoś Share Napisano Wrzesień 16, 2008 umieszczę tutaj rozwiazania moich problemów, moze komuś się to przyda pierwsza rzecz - sprawa okazala sie banalna: trzeba uwzglednic KOD#include <stdio.h> #pragma comment(lib, "shell32.lib") a w wywołaniu funkcji po prostu: KODchar bufor[10]; sprintf_s(bufor,"%1.0f",Convert::ToDouble(textBox1->Text)); ShellExecuteA(0, "open", "program.exe", bufor, NULL, SW_SHOW); i juz mozna dawac co sie chce jako parametr, git jesli chodzi o drugi problem to istotnie jest tak, atoi lub atof i gra - dzieki. Link do komentarza Udostępnij na innych stronach More sharing options...
Polecane posty
Zarchiwizowany
Ten temat jest archiwizowany i nie można dodawać nowych odpowiedzi.