Forum: PC-Programmierung Visual Studio läuft schief.


von Pat_Tech (Gast)


Lesenswert?

Hi



liebend gerne würde ich einen einstieg finden in die Programmierung von 
„C“ und zzgl. auch „C++“ (nacheinander versteht sich) doch macht mir 
Microsoft Visual Studio zu schaffen…ich habe bislang nur gehört das es 
eine richtige Einstellung brauch, damit es überhaupt C Compilern kann.

Leider hatte ich es selber versucht zu starten mit dem Buch „C 
Programmieren von Anfang an, Helmut Erlenkötter“

Doch genau da bleibt es auch weil es nur Fehler anzeigt.



könnt ihr mir ein Ratschlag geben?



1:Schweregrad Code Beschreibung Projekt Datei Zeile 
Unterdrückungszustand

Fehler (aktiv) E1696 Die Datei "Quelle" kann nicht geöffnet werden: 
"stdafx.h". Hallo Welt C:\Users\Grisu\source\repos\Hallo Welt\Hallo 
Welt\Main.c 2



2:Schweregrad Code Beschreibung Projekt Datei Zeile 
Unterdrückungszustand

Fehler (aktiv) E0020 Der Bezeichner ""voind"" ist nicht definiert. Hallo 
Welt C:\Users\Grisu\source\repos\Hallo Welt\Hallo Welt\Main.c 4



3:Schweregrad Code Beschreibung Projekt Datei Zeile 
Unterdrückungszustand

Fehler C1010 Unerwartetes Dateiende während der Suche nach dem 
vorkompilierten Header. Haben Sie möglicherweise vergessen, im Quellcode 
"#include "pch.h"" einzufügen? Hallo Welt 
c:\users\grisu\source\repos\hallo welt\hallo welt\main.c 10



das Beispiel funktioniert mit netbeans problemlos

: Verschoben durch User
von Pat_Tech (Gast)


Lesenswert?

ach ja ich vergaß das Problem ist in Visual Studio 2017

von Adalbert Brumm (Gast)


Lesenswert?

Visual Studio ist einige riesige IDE mit extrem großem Funktionsumfang. 
Wenn es dir nur um das Erlernen einer Programmiersprache geht, bist du 
mit einem einfachen Editor + Compiler per CLI vermutlich erst mal besser 
bedient.

Wenn du dann die Sprachen halbwegs beherrschst, macht es Sinn sich mal 
mit den IDEs zu beschäftigen.

von Oliver S. (oliverso)


Lesenswert?

Pat_Tech schrieb:
> liebend gerne würde ich einen einstieg finden in die Programmierung von
> „C“ und zzgl. auch „C++“ (nacheinander versteht sich)

Nein. Versteht sich nicht. Nimm C++, kein C.

Die zweite Fehlermeldung solltst du selbst entschlüsseln können, für den 
Rest wäre dein Programm hier als Anhang hilfreich.

Oliver

von Dr. Sommer (Gast)


Lesenswert?

Fehler (aktiv) E0020 Der Bezeichner ""voind"" ist nicht definiert. Hallo
Welt C:\Users\Grisu\source\repos\Hallo Welt\Hallo Welt\Main.c 4

Dann zeig die Datei doch mal... Sieht aus wie ein falsch geschriebenes 
"void" ?!

Pat_Tech schrieb:
> „C“ und zzgl. auch „C++“ (nacheinander versteht sich)

Aber hoffentlich in der anderen Reihenfolge. Wenn man erst C lernt und 
auf C++ umsteigt, muss man erst die ganzen schlechten C-Angewohnheiten 
wieder un-lernen. C++-Code von Ex-C-Programmierern ist oft ziemlich 
schlimm!
Wenn man direkt C++ lernt, sieht man wie es richtig geht. Danach muss 
man sich nur noch merken was von C++ in C alles nicht geht, wenn man 
doch mal irgendwann C braucht. Wenn man aber C++ beherrscht wird das 
Verlangen, C zu programmieren, irgendwie kleiner.

Davon ab, unterstützt Visual Studio C nicht vollständig. Da sollte man 
sowieso lieber direkt C++ nehmen...

von DPA (Gast)


Lesenswert?

Pat_Tech schrieb:
> Die Datei "Quelle" kann nicht geöffnet werden:
> "stdafx.h"

Das ist zwar ein Windowsspezifische Header, aber diese haben in guten 
und reinen C Projekten nichts verloren.

von Pat_Tech (Gast)


Angehängte Dateien:

Lesenswert?

welche Datei kann ich zeigen damit ihr es öffnen könnt

von Pat_Tech (Gast)


Lesenswert?

hier 2.

Adalbert Brumm schrieb
> Wenn es dir nur um das Erlernen einer Programmiersprache geht, bist du
> mit einem einfachen Editor + Compiler per CLI vermutlich erst mal besser
> bedient.


kannst du mir eins empfehlen?

von Dirk B. (dirkb2)


Lesenswert?

Pat_Tech schrieb:
> Fehler (aktiv) E1696 Die Datei "Quelle" kann nicht geöffnet werden:
> "stdafx.h". Hallo Welt C:\Users\Grisu\source\repos\Hallo Welt\Hallo
> Welt\Main.c 2

Erstelle ein leeres Konsolenanwendungs-Projekt

Irgendwo in den Projekteinstellungen kann man sicher auch die 
vorcompilierten Header abschalten.

von Dirk K. (merciless)


Lesenswert?

Pat_Tech schrieb:
> welche Datei kann ich zeigen damit ihr es öffnen könnt
Main.c

merciless

von Herr Flitzpiep (Gast)


Lesenswert?

Neues Project -> Visual C++ -> Windows Desktop -> 
Windows-Desktopassistent
Dort Konsolenanwendung wählen - müsste ohnehin die Voreinstellung sein - 
und alles deselektieren (insbesondere "Vorkompilierte Header", denn das 
ist dein Problem). Im Projekt die Quellcode-Datei dann umbenennen (etwas 
mit Endung ".c") oder löschen und eine neue erzeugen.
Man kann auch über ein leeres Projekt gehen oder CMake, aber das oben 
dürfte erst einmal der einfachste Weg sein.

Du kannst auch einen einfachen Editor und die Konsole verwenden, wie 
Adalbert bereits geschrieben hat. Dazu musst du auch nicht VS 
installieren, sondern nur die "VisualStudio Build Tools" (Compiler etc. 
+ Bibliotheken).

Noch etwas: C ist nicht gerade eine Stärke von Microsoft. Man kann in VS 
inzwischen auch Clang verwenden, aber damit kenne ich mich (in 
Verbindung mit VS) nicht aus.

von Pat_Tech (Gast)


Angehängte Dateien:

Lesenswert?

bitteschön

von Dirk B. (dirkb2)


Lesenswert?

Pat_Tech schrieb:
> liebend gerne würde ich einen einstieg finden in die Programmierung von
> „C“ und zzgl. auch „C++“ (nacheinander versteht sich)

C und C++ sind zwei verschiedene Programmiersprachen.
Tu dir das nicht an und fang gleich mit modernem C++ an.


C++ ist als objektorientierter Ansatz für C (C mit Klassen) entstanden, 
hat sich seitdem aber starck weiter entwickelt.

Wenn jemand in den 90er C++ prgrammiert hat, dann war das oft C mit cout 
und/oder dem einzeiligen Kommentar //
Da war es gut, wenn man C konnte. Heute nicht mehr.

von Dirk B. (dirkb2)


Lesenswert?

Pat_Tech schrieb:
1
#include <stdio.h>
2
#include <stdafx.h>  // keine vorcompilierten Header nutzen
3
4
voind main()  // der Rückgabetyp vom main ist immer int
5
{
6
  printf("Hallo Von hier wird gebaut!\n");
7
  
8
  getchar; // getchar ist eine Funktion
9
}

Es gibt laut C-Standard drei gültige Deklarationen von main:
int main();
int main(void);
int main(int argc, char **argv);

Alle haben ein int als Rückgabwert.

Das der Compiler voind nicht mag hat er ja gesagt.
Es gibt in C den Typ void, aber der ist an der Stelle nicht angebracht.

: Bearbeitet durch User
von Pat_Tech (Gast)


Lesenswert?

ok dann kann ich also doch mit VS abschließen und auf Neatbeans 
umswitchen

echt danke für eure so schnelle Hilfe.

von DPA (Gast)


Lesenswert?

> getchar; // getchar ist eine Funktion

So wird das aber nicht aufgerufen. da müsste schon ein () hinter das 
getchar.

Dirk B. schrieb:
> Tu dir das nicht an und fang gleich mit modernem C++ an.

Nein, lerne C und vergiss C++. C++ ist die hydra der Programiersprachen. 
Danach kann man gleich mit weiteren richtigen Sprachen weitermachen, 
z.B. rust, go, java, javascript, python, lua, haskel,... Alle haben gute 
neuartige eigenschaften. Aber vergiss C++, C#, und alles mit "objective" 
im namen.

von Jan L. (ranzcopter)


Angehängte Dateien:

Lesenswert?

Pat_Tech schrieb:
> ok dann kann ich also doch mit VS abschließen und auf Neatbeans
> umswitchen
>
> echt danke für eure so schnelle Hilfe.

...oder wie oben schon vorgeschlagen - simpel anfangen, sowas 
installieren
https://mingw-w64.org
und in unter einer Minute (sofern Mingw vorhanden ist) läuft das (ok, 
"voind" korrigiert und 2. include<> weggelassen)

[edit: sorry, Doppelbild - war aber nur ein submit...]

: Bearbeitet durch User
von Dirk B. (dirkb2)


Lesenswert?

DPA schrieb:
>> getchar; // getchar ist eine Funktion
>
> So wird das aber nicht aufgerufen. da müsste schon ein () hinter das
> getchar.

Ja, so war das gemeint.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

stdafx.h wird in C-Projekten üblicherweise nicht verwendet.

Wenn es jedoch verwendet wird, wird es NICHT mit Spitzklammern, sondern 
mit Anführungszeichen eingebunden, denn die Datei gehört zum jeweiligen 
Projekt.

Also statt

#include <stdafx.h>

#include "stdafx.h"

verwenden.

Diese Datei ist dann zu verwenden, wenn man mit /vorcompilierten 
Headerdateien/ arbeiten möchte. Das ist etwas, was den 
Übersetzungsvorgang beschleunigen kann, indem es das Zwischenergebnis 
des Parsens der Headerdateien etc. bis zu einem bestimmten Punkt während 
des Übersetzungsvorgangs abspeichert, um das Resultat beim nächsten 
Übersetzungsvorgang wiederverwenden zu können.

Bei nichttrivialen Projekten (die also aus mehreren Dateien bestehen) 
ist es hierfür wichtig, daß dieser "bestimmte Punkt" während des 
Übersetzungsvorganges bei allen zu überseztenden Dateien der gleiche 
ist.

Das kann man von Hand machen, indem alle Source-Dateien exakt die 
gleichen #include-Anweisungen enthalten oder aber zumindest mit der 
gleichen Liste von #include-Anweisungen beginnen.

Das Ende der Liste wird mit #pragma hdrstop gekennzeichnet.

Um nicht in alle Dateien die gleiche Liste reinkopieren zu müssen, und 
diese bei Änderungen aufwendig zu pflegen, ist stdafx.h erfunden worden.

Dort, und nur dort stehen alle standardmäßig einzubindenden 
Headerdateien.


Wenn man allerdings auf vorcompilierte Headerdateien verzichtet, braucht 
man diese Datei nicht, der Übersetzungsvorgang kann dann halt etwas 
langsamer vonstatten gehen. In Zeiten von SSDs ist das nicht mehr so ein 
großes Thema, und vor allem sind viele Projekte so klein, daß der 
Aufriss eh' nicht lohnt.

Ein heutiges System übersetzt ein 200kLoC-Projekt in vielleicht einer 
Minute (build all) - da ist es wirklich müßig, an der Zeitschraube zu 
drehen.

von Pat_Tech (Gast)


Lesenswert?

Schweregrad  Code  Beschreibung  Projekt  Datei  Zeile 
Unterdrückungszustand
Fehler  C1010  Unerwartetes Dateiende während der Suche nach dem 
vorkompilierten Header. Haben Sie möglicherweise vergessen, im Quellcode 
"#include "pch.h"" einzufügen?  Hallo Welt 
c:\users\grisu\source\repos\hallo welt\hallo welt\main.c  10

ich habe es versucht aber jetzt steht da noch immer ein Fehler

von Pat_Tech (Gast)


Lesenswert?

Datum: 21.03.2019 18:13
Schweregrad  Code  Beschreibung  Projekt  Datei  Zeile
Unterdrückungszustand
Fehler  C1010  Unerwartetes Dateiende während der Suche nach dem
vorkompilierten Header. Haben Sie möglicherweise vergessen, im Quellcode
"#include "pch.h"" einzufügen?  Hallo Welt
c:\users\grisu\source\repos\hallo welt\hallo welt\main.c  10

ich habe es versucht aber jetzt steht da noch immer ein Fehler

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Du kannst entweder die Verwendung von präcompilierten Headerdateien 
abschalten oder aber hinter die letzte #include-Anweisung in Deinem 
Quelltext, die mit Spitzklammern arbeitet, die folgende Zeile setzen:

#pragma hdrstop

von Dirk K. (merciless)


Lesenswert?

Die Verwendung von precompilierten Headern kann man
auf Projekt-Ebene und auf Datei-Ebene konfigurieren.
Schalte das in den Projekt-Einstellungen aus (Rechtsklick
auf Projektname im Projektmappen-Explorer -> Eigenschaften
-> C++ -> Vorkompilierte Header) und für die Datei main.c
aus (Rechtsklick auf main.c im Projektmappen-Explorer ->
Eigenschaften -> C++ -> Vorkompilierte Header).

merciless

: Bearbeitet durch User
von Pat_Tech (Gast)


Lesenswert?

Dirk K. schrieb:
> Die Verwendung von precompilierten Headern kann man
> auf Projekt-Ebene und auf Datei-Ebene konfigurieren.
> Schalte das in den Projekt-Einstellungen aus (Rechtsklick
> auf Projektname im Projektmappen-Explorer -> Eigenschaften
> -> C++ -> Vorkompilierte Header) und für die Datei main.c
> aus (Rechtsklick auf main.c im Projektmappen-Explorer ->
> Eigenschaften -> C++ -> Vorkompilierte Header).
>
> merciless


danke dir viel Mals auch wenn es schwer war in dem Programm VS die 
richtigen knöpfe zu drücken aber es funktioniert jetzt

aber das es jetzt so lange dauert bis er es in der Konsole öffnet liegt 
daran weil der Header jetzt weg ist ?

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Pat_Tech schrieb:
> aber das es jetzt so lange dauert bis er es in der Konsole öffnet

Wer sind "er" und "es" und ab wann dauert es lange?

von Donni D. (Gast)


Lesenswert?

Klar dauert es jetzt länger, er muss schließlich noch die Header 
kompilieren.

von M.K. B. (mkbit)


Lesenswert?

DPA schrieb:
> Nein, lerne C und vergiss C++. C++ ist die hydra der Programiersprachen.
> Danach kann man gleich mit weiteren richtigen Sprachen weitermachen,
> z.B. rust, go, java, javascript, python, lua, haskel,...

Begründung?

Ich würde sagen, wenn du direkt mit HW arbeitest, dann nimm C++. Du 
kannst da Low-level programmieren (ähnlich wie C), hast aber durch die 
Objektorientierung und Standardbibliothek die Möglichkeit Code leichter 
lesbar, sicherer und einfacher zu schreiben. Du musst ja nicht mit dem 
vollen Umfang starten, kannst aber später mehr und mehr davon verwenden.

Um programmieren im allgemeinen zu lernen, würde ich für einer höheren 
Sprache mit guter Unterstützung entscheiden. Selbst als erfahrener C++ 
Entwickler schreibe ich Hilfsprogramme lieber in Python, weil viele 
Aufgaben schon durch die Bibliothek angeboten werden und ich nicht 
wieder alles einzeln selbst schreiben muss.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

M.K. B. schrieb:
> dann nimm C++.

Vorsicht beim Einsatz des Visual Studio - Microsoft nennt auch 
Programmiersprachen "C++", die kein C++ sind, sondern für den 
.Net-Unterbau gedachte Perversionen von C++ sind.

Das ist in der IDE insbesondere beim Erzeugen neuer Projekte für den 
Anfänger nicht unterscheidbar.

von Pat_Tech (Gast)


Lesenswert?

ok und wenn ich jetzt einfach mal probehalber auf meinem win 10 pc

[Betriebsystemname  Microsoft Windows 10 Pro
Version  10.0.17763 Build 17763
Weitere Betriebsystembeschreibung   Nicht verfügbar
Betriebsystemhersteller  Microsoft Corporation
Systemhersteller  Hyrican Informationssyteme AG
Systemtyp  x64-basierter PC
Prozessor  Intel(R) Core(TM) i7-4770K CPU @ 3.50GHz, 3501 MHz, 4 
Kern(e), 8 logische(r) Prozessor(en)
SMBIOS-Version  2.7
Installierter physischer Speicher (RAM)  16,0 GB]

ein Programm schreiben will was parallel mit meinem Handy läuft 
Beispiel, das es mir alles anzeigt was auf dem Handy 
passiert(Textsendungen Programm-app öffnen ect. womit müsste ich dann 
anfangen bzw. geht das mit C++  so einfach wenn ich es lediglich nur 
sehen will als Konsolenangabe)

es handelt sich hierbei lediglich um mein eigenes Handy also kein 
direktes Heching.

von Dr. Sommer (Gast)


Lesenswert?

Pat_Tech schrieb:
> ein Programm schreiben will was parallel mit meinem Handy läuft

Was für ein Handy? Für Windows Phone wird das nur mit C# gehen. In C++ 
sowieso nicht.

In C++ für Smartphones programmieren macht wenig Sinn. Für Android geht 
das mit NDK, aber nur in Spezialfällen sinvoll.

Pat_Tech schrieb:
> kein
> direktes Heching.

Kein was?

Pat_Tech schrieb:
> das es mir alles anzeigt was auf dem Handy
> passiert
Aus einer App kannst du nicht alles kontrollieren. Dazu musst du das 
Handy rooten und den Kernel und Framework modifizieren.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Pat_Tech schrieb:
> ein Programm schreiben will was parallel mit meinem Handy läuft

Parallel mit?

Du meinst ein Programm, das sowohl auf Deinem PC als auch auf Deinem 
Smartphone läuft?

Daß das unter anderem ein klitzekleines Bisschen vom Betriebssystem des 
Smartphones abhängen könnte, ist Dir klar?

von Oliver S. (oliverso)


Lesenswert?

Rufus Τ. F. schrieb:
> Vorsicht beim Einsatz des Visual Studio - Microsoft nennt auch
> Programmiersprachen "C++", die kein C++ sind, sondern für den
> .Net-Unterbau gedachte Perversionen von C++ sind.

Hm. Man kann ja über Microsoft schimpfen, wie man will, und deren 
C-Compiler ist sicherlich eher Murks, aber der C++-Compiler ist ein 
brauchbarer C++-Compiler, und hält sich, so gut er kann, an den 
Standard.

Oliver

von DPA (Gast)


Lesenswert?

M.K. B. schrieb:
> DPA schrieb:
>> Nein, lerne C und vergiss C++. C++ ist die hydra der Programiersprachen.
>> Danach kann man gleich mit weiteren richtigen Sprachen weitermachen,
>> z.B. rust, go, java, javascript, python, lua, haskel,...
>
> Begründung?

Wie schon gesagt, C++ ist die Hydra der Programmiersprachen.
Eine Hydra ist ein Fabelwesen/Monster mit vielen Köpfen, mit der 
Problematik, das für jeden Kopf, den man abtrennt, wachsen 2 Nach.

Das war als Analogie dafür gemeint, dass C++ extrem viele 
Sprachkonstrukte hat, es ist ein Komplexes Monster einer 
Programmiersprache, bei der es schwierig ist zu entscheiden, welche 
Köpfe/Sprachkonstrukte/Paradigmen, man verfolgen sollte. Ich beherrsche 
C++, und klar, man könnte versuchen gewisse Sprachkonstrukte einfach 
nicht zu verwenden, aber man ist ja oft nicht der Einzige, der an einem 
Projekt schreibt, und selbst wenn, ist es nicht immer die Optimale 
Lösung. Und dann endet man am ende eben doch wieder entweder in extrem 
überdesigntem Code, und Programmiert sich so in die Ecke, oder man geht 
ins andere Extrem und endet in Spagetti. Ein guter Mittelgrund gibt es 
nicht wirklich, oder ist zumindest eine sehr subjektive Angelegenheit. 
Und biss man alle Features mal kennt und beherrscht, und dafür muss man 
sie auch mal ausprobiert haben, das dauert Jahre!!! Andere 
Programmiersprachen haben eine konsistentere und meist kleinere Auswahl 
an Sprachkonstrukten, die aber gut mit den üblichen Verwendungsarten der 
Sprache harmonisiert. Es ist dort etwas schwieriger, und bei weitem 
offensichtlicher, wenn man etwas über oder unterengineert, auch wenn das 
am Anfang immer noch ein zwei mal passieren kann, bis man drin ist. 
Nachdem man eine grobe Idee hat, wie man sein Programm designen will 
(welche Komponenten gibt es, welche Daten gehen wie wo durch, was macht 
das zeug, oder alles zusammengefasst wie soll es Funktionieren?), kann 
man loslegen, und ein schönes Programm entsteht, wo immer mehr oder 
weniger klar war, wie die jeweiligen ausgedachten Konstrukte umzusetzen 
sind. Aber in C++ nicht, dort fragt man sich dann, ob das Template zu 
verwenden nicht doch falsch war, ob man Vererbung hätte nehmen sollen, 
ob eine Funktion an der Stelle nicht doch besser als ein Lambda gewesen 
wäre weil man jetzt N Variationen davon hat, ob man die Klasse besser 
als POC++O (siehe POJO) hätte lassen sollen, ob man nicht mehr oder 
weniger Getter verwenden hätte sollen, etc. Und dann fehlen C++ noch die 
guten Dinge von OOP, wie z.B. Interfaces, und Nein abstrakte Klassen mit 
puren Funktionen sind nicht das selbe. In C kann man immer noch so 
ziemlich all das machen, was man will, wie man es will, aber man muss 
sich nicht damit herumschlagen, auf welches Sprachkonstrukt das Konzept 
diesmal am besten passt.

von DPA (Gast)


Lesenswert?

Pat_Tech schrieb:
> ein Programm schreiben will was parallel mit meinem Handy läuft

Handys sind meist extrem vom Hersteller abgeschottet, und die Systeme 
wie Android, iOS, etc. haben eigene APIs und Frameworks die anders sind 
als alles andere. Die Hersteller wollen einen Lock-in. Es gibt zwar 
Frameworks, die das zu abstrahieren versuchen, aber das ist auch nicht 
das Wahre.

Ich hab mir ein Librem5 bestellt, dort läuft ein normales Linux meiner 
Wahl, und alle Linux Programme laufen (sofern diese auf ARM64 laufen, 
aber jedes nicht total miserabel geschriebene sollte das.), wie auf 
einem richtigen PC. (Mögliche Limitationen der noch in Entwicklung 
Hardware/Treiber bzw. deren Leistung können am Anfang noch 
schwierigkeiten bereiten.)

von M.K. B. (mkbit)


Lesenswert?

DPA schrieb:
> In C kann man immer noch so ziemlich all das machen, was man will, wie
> man es will, aber man muss sich nicht damit herumschlagen, auf welches
> Sprachkonstrukt das Konzept diesmal am besten passt.

Aber wie kann ich heute noch in der geforderten Zeit etwas umsetzen, 
wenn ich immer alles selber machen muss? Bzw. wer bezahlt mir das?

von Bernd K. (prof7bit)


Lesenswert?

Pat_Tech schrieb:
> liebend gerne würde ich einen einstieg finden in die Programmierung von
> „C“ und zzgl. auch „C++“ (nacheinander versteht sich) doch macht mir
> Microsoft Visual Studio zu schaffen

Für den Einstieg benötigst Du keine Visual Studio sondern nur eine 
Toolchain, einen Texteditor und eine Konsole. Alle guten Tutorials 
fangen traditionell genau auf dieser Ebene an und das hat seinen guten 
Grund. Dort werden die essentiellen Grundlagen erlernt. Sobald Du dann 
nach einigen Wochen dort zurecht kommst und weißt was Du tust weißt Du 
genug um dich auch mal an die Monster-IDE zu wagen und zu verstehen was 
die Einstellungen bedeuten und was man wo einstellen muß und wie die 
Fehler zu deuten sind, vorher nicht, denn das wäre reiner Blindflug mit 
abschließendem Frontalaufprall ohne jeglichen Lehrwert!

: Bearbeitet durch User
von M.K. B. (mkbit)


Lesenswert?

Pat_Tech schrieb:
> ein Programm schreiben will was parallel mit meinem Handy läuft
> Beispiel, das es mir alles anzeigt was auf dem Handy passiert

Meine spontanen Gedanken dazu.
Du brauchst ein Programm auf dem PC und eins auf dem Handy. Diese müssen 
mit dem jeweiligen Betriebssystem zusammenpassen, d.h. du wirst dich in 
zwei Bibliotheken einarbeiten müssen. Kommunikation dürfte nicht das 
Problem sein, wenn man über TCP/IP arbeitet.

Wenn deine App andere Apps auslesen oder Steuern soll, dann kommst du 
unter Android nicht um Root drumherum. Sonst könnte ja auch jede andere 
App unter Android das heimlich machen.

Dein Projekt ist schon sehr anspruchsvoll, kann aber ein schönes Ziel 
sein. Sei aber nicht demotiviert (könnte mehrere Jahre dauern bis du da 
bist), sonder Versuche dich einfach in kleinen Schritten zu nähern.

von DPA (Gast)


Lesenswert?

M.K. B. schrieb:
> DPA schrieb:
>> In C kann man immer noch so ziemlich all das machen, was man will, wie
>> man es will, aber man muss sich nicht damit herumschlagen, auf welches
>> Sprachkonstrukt das Konzept diesmal am besten passt.
>
> Aber wie kann ich heute noch in der geforderten Zeit etwas umsetzen,
> wenn ich immer alles selber machen muss? Bzw. wer bezahlt mir das?

Auch in C gibt es Libraries. Insbesondere eine Lib für divers Arten von 
Listen und Maps zu suchen oder zu schreiben würde ich empfehlen. Bei 
linked lists würde ich speziell einen Blick auf die Linux Implementation 
empfehlen. Vieles ist in C nicht viel mehr Schreibaufwand, und das 
Schreiben des Codes ist meistens nicht was am meisten Zeit verbraucht. 
Es braucht aber etwas Erfahrung, wie man diverse Abstraktionen in C am 
schönsten umsetzen kann, welche nur wenige besitzen, und in vielen 
Büchern fehlt. Diese Erfahrung erlangt man am besten, wenn man 
verschiedenen Patterns verschiedener Programmiersprachen auf andere 
Programmiersprachen anwendet. Hat man die Erfahrung erstmal, spielt die 
Sprache aber eigentlich keine grosse Rolle mehr in punkto 
Entwicklungsgeschwindigkeit (mit Ausnahme solcher für sehr spezifische 
Aufgaben bei den selbigen Aufgaben, z.B. SQL, HTML, QML, etc.).
Auf lange sicht sind Codedesignprobleme in C++ aber wahrscheinlicher und 
schwieriger zu beheben, und wer bezahlt mir das? Aber gut, refactoring 
sollte man so oder so immer mal wieder machen, und Management will 
sowieso nur schnell mal was sehen.

von Oliver S. (oliverso)


Lesenswert?

Bernd K. schrieb:
> Für den Einstieg benötigst Du keine Visual Studio sondern nur eine
> Toolchain, einen Texteditor und eine Konsole. Alle guten Tutorials

Gerade für den Einsteig braucht man zwingend einen Debugger mit GUI, und 
da für ist unter Windows sowas wie Visual Studio ideal. Das läuft out of 
the Box, hat den Debugger integriert, und kommt mit allem, was man 
braucht.

Oliver

von Pat_Tech (Gast)


Lesenswert?

Dr. Sommer schrieb:

>> kein
>> direktes Heching.
>
> Kein was?
Na

Hacking Spionage oder Cyberkriminalität
Lediglich will ich nur das es ein Programm wird was mir in 
Konsolenausführung mit zeigt was mein Handy alles einher geht texte 
Anruf Protokoll ect. oder auch wann zu welcher zeit welches Programm 
geöffnet wird...das alles über LAN-WLAN server.
Quasi ein Protokoll.

von Pat_Tech (Gast)


Lesenswert?

M.K. B. schrieb:
> Pat_Tech schrieb:
>> ein Programm schreiben will was parallel mit meinem Handy läuft
>> Beispiel, das es mir alles anzeigt was auf dem Handy passiert
>
> Meine spontanen Gedanken dazu.
> Du brauchst ein Programm auf dem PC und eins auf dem Handy. Diese....


könntest du mir ein Startpunkt geben wie ich Anfang sollte und was ich 
alles beachten müsste!

von DPA (Gast)


Lesenswert?

Pat_Tech schrieb:
> Lediglich will ich nur das es ein Programm wird was mir in
> Konsolenausführung mit zeigt was mein Handy alles einher geht texte
> Anruf Protokoll ect. oder auch wann zu welcher zeit welches Programm
> geöffnet wird...das alles über LAN-WLAN server.

Das wäre selbst für mich extrem anspruchsvoll, also das Handyseitige 
zumindest. Und die frage ist immernoch, welches Phone OS? Bei iOS kannst 
du das grösstenteils gleich vergessen. Bei (gerootetem) Android, ein 
grosses vielleicht.

Falls du das fertig bringst, gabs da nicht diverse Behörden in DE und CH 
die noch einen Anbieter für derartige Spionageprogramme brauchen? 
Könntest du denen eventuell teuer verkaufen.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Oliver S. schrieb:
> aber der C++-Compiler ist ein brauchbarer C++-Compiler,

Das habe ich nicht bestritten. Der native C++-Compiler gilt 
tatsächlich als richtig gut.

Das .Net-Geraffel nutzt aber kein natives C++, sondern etwas, was früher 
mal "Managed C++" oder "C++/CLI" genannt wurde.

von Pat_Tech (Gast)


Lesenswert?

dazu müsste ich erstmals bei meinem Androide Phone einen Anfang 
schaffen.
zumal über CMD die Verbindung via USB zum Handy ist es ja sehr leicht 
und verständlich genug nur nun will ich es halt erweitern und in 10tel 
sec. Takt das Programm schreiben um es zu überwachen,logisch, dass 
Handy.

von Bernd K. (prof7bit)


Lesenswert?

Oliver S. schrieb:
> Gerade für den Einsteig braucht man zwingend einen Debugger mit GUI

Ich bin da ganz anderer Meinung. Es gibt einen ganzen Berg von Sachen 
die der Schüler vorher zunächst mal gemacht und verstanden haben muß 
bevor er zum ersten Mal in Situationen kommt wo er tatsächlich einen 
Debugger braucht. Für die ersten paar Kapitel in Einsteigerturorials 
wird garantiert kein Debugger benötigt. Noch lange bevor das der Fall 
ist lernt er Variableninhalte auf der Konsole ausgeben zu lassen und das 
reicht für die ersten zwei Drittel seines Weges für die Fehlersuche 
vollkommen aus.

von zitter_ned_aso (Gast)


Lesenswert?

Wenn du Android programmieren willst, dann brauchts du Java.   Und auf 
einem PC kannst du damit auch programmieren (siehe OpenOffice, 
Minecraft, etc.).

von Oliver S. (oliverso)


Lesenswert?

Bernd K. schrieb:
> Oliver S. schrieb:
>> Gerade für den Einsteig braucht man zwingend einen Debugger mit GUI
>
> Ich bin da ganz anderer Meinung.

Das macht nix. Eigentlich seit Turbo-Pascal aus den seligen Zeiten des 
letzten Jahrtausends ist diese Diskussion unnötig. Gerade zum Lernen ist 
ein einfach zu bedienender Debugger unverzichtbar. Kommandozeilenjunkie 
kann man werden, wenn man programmieren kann. Und selbst dann ist das 
verzichtbar.

Oliver

von Dirk B. (dirkb2)


Lesenswert?

Pat_Tech schrieb:
> zumal über CMD die Verbindung via USB zum Handy ist es ja sehr leicht
> und verständlich genug

Womit machst du das?

von M.K. B. (mkbit)


Lesenswert?

Pat_Tech schrieb:
> könntest du mir ein Startpunkt geben wie ich Anfang sollte und was ich
> alles beachten müsste!

Erstmal wäre es gut, wenn du deine Anforderungen mal beschreibst. Also 
was du genau auf dem Handy machen willst, wie dein Input und Output als 
User aussehen soll. Erst dann kann man dir gezielt Tipps geben bzw. 
einschätzen, wie realistisch sein Ziel ist.

Sonst ist mir noch nicht klar, ob du in C++ oder ins programmieren 
allgemein einsteigen willst.

von Bernd K. (prof7bit)


Lesenswert?

Oliver S. schrieb:
> Kommandozeilenjunkie
> kann man werden, wenn man programmieren kann. Und selbst dann ist das
> verzichtbar.

Er soll kein Kommandozeilenjunkie werden sondern nur lernen wie und mit 
welchen Argumenten Compiler und Linker aufgerufen werden damit er 
versteht was die IDE später machen wird/soll und was die Einstellungen 
in der IDE dementsprechend bedeuten. Er soll quasi den Deckel aufmachen 
und so lange reinschauen und selber Hand anlegen bis er verstanden hat 
was da in welcher Reihenfolge vor sich gehen muss und welche 
Fehlermeldungen von welchen Tools erzeugt werden und unter welchen 
Umständen.

Ohne das Zusammenspiel von Compiler und Linker zu verstehen und deren 
Zweck und deren Verhaltensweisen kann man diese Sprache nicht nutzen 
weil man sonst bestimmte Eigenschaften der Sprache nicht verstehen und 
bestimmte Fehlermeldungen nicht sinnvoll interpretieren kann!

Und ein Debugger ist nicht notwendig dafür, das (und die Benutzung einer 
IDE) kann er lernen wenn er die Sprache und die verwendete Toolchain 
halbwegs verstanden hat, dafür braucht man keinen Debugger, so ein 
Spielzeug lenkt in dieser Phase seine Aufmerksamkeit nur vom 
eigentlichen Thema ab und kostet daher Zeit!

von Pat_Tech (Gast)


Lesenswert?

Dirk B. schrieb:
> Pat_Tech schrieb:
>> zumal über CMD die Verbindung via USB zum Handy ist es ja sehr leicht
>> und verständlich genug
>
> Womit machst du das?

na via usb und dann laufwerk suchen, damit kann ich dann auf die daten 
zugreifen sow ei auch bei jeden laufwerk

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Aha. Und was hat das damit zu tun, ein Programm zu schreiben, das dann 
auch auf dem Smartphone läuft?

von Pat_Tech (Gast)


Lesenswert?

M.K. B. schrieb:
> Pat_Tech schrieb:
>> könntest du mir ein Startpunkt geben wie ich Anfang sollte und was ich
>> alles beachten müsste!
>
> Er. gesamt Text..sein Ziel ist.
>
> Sonst ist mir noch nicht klar, ob du in C++ oder ins programmieren
> allgemein einsteigen willst.

mein ziel ist es überhaupt programmieren zu lernen und irgendwann will 
ich ein Programm haben was sich automatisch mit dem Handy verbindet was 
in der nähe ist(klar schwer zu verstehen , da über Internet alle Handy´s 
in der nähe sind..Lach) aber logischer weise soll mein PC sich aktive 
über ein Programm mit dem Handy verbinden und es ebenso bedienen können.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Dir sollte klar sein, daß "sich mit dem Handy verbinden" und sogar "es 
ebenso bedienen können" rein gar nichts mit dem Dateizugriff auf ein 
als Massenspeicher eingebundenes Smartphone zu tun hat.

von M.K. B. (mkbit)


Lesenswert?

Pat_Tech schrieb:
> mein ziel ist es überhaupt programmieren zu lernen

Ich würde an deiner Stelle mit einem Tutorial oder Buch anfangen 
programmieren zu lernen. Wenn du später auf PC oder Handy Software 
schreiben willst, würde ich nicht mit C oder C++ anfangen, weil die 
meiner Meinung nach zu hardwarenah sind. Ich würde dann eher Python oder 
Java nehmen. Für das grundlegende Verständnis ist es aber auch egal.

Dein Ziel finde ich selbst erfahrener Programmierer aufwendig, aber das 
soll dich nicht davon abhalten. Ich will dir damit nur sagen, dass du 
erstmal mit etwas kleinerem anfangen solltest.
Und versuche das was du tust zu verstehen und nicht nur fertige Teile 
zusammenzukopieren, auch wenn es erstmal länger dauert. Dann hast du am 
Ende das Verständnis um beliebige Probleme zu lösen.

von Wolfi (Gast)


Lesenswert?

Kann es sein dass du eine Art Remote Bedienung per Handy suchst? Wenn ja 
kannst du dir folgendes mal anschauen : 
https://blog.xamarin.com/building-remote-control-companion-app-android-project-rome/
... Und nein... Um Android Apps zu programmieren braucht man kein 
Javascript sondern kann c#, vb, c++ unter visual studio verwenden und 
auch direkt die App im Simulator laufen lassen bzw die apk am Handy 
installieren...

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.