-
Thread
Objektinstanz vom Drucker nach printDialog->ShowDialog().
[c] #pragma comment(lib, "winspool") [/c]
hast recht..."unscheinbares Dropdown" Aber die Ironie, dass der Beispiel-Code mit Auswahl auf "C#" mehr nach (echtem) C++ aussieht, als bei der Wahl von "C++"(/CLI), ist dir entgangen?
-
Thread
Zugriff auf struct über Pointer unter Visual Studio macht Probleme.
Roger S. schrieb im Beitrag #7460049: > Der C++ Teil von C++/CLI ist das Standard (Microsoft) C++ Wo trennst Du das? Schon das da [c] int main(array<System::String ^> ^args) { printf("sizeof unpacked: %d\n", sizeof(BMP_DateiKopf_type
); //sizeof packed: 14 return 0; } [/c] Das hier ist eine .NET funktion, der Aufruf der native funktion wird als IL code erzeugt und landet im .NET assembly teil. [c] int main(array<System::String ^> ^args) { return puresC();
-
Thread
Objektinitialisierung mit Parametern im Konstruktor in C++
verzichten und dem KISS-Prinzip zu folgen, auch wenn die Ausgabe dann weniger elegant ausfällt. [c] ValueNumber numberValueVoltage; ValueNumber numberValueTime; ValueString stringValueError; //... numberValueVoltage.Draw(); numberValueTime.Draw(); stringValueError.Draw();[/c]
und > dem KISS-Prinzip zu folgen, auch wenn die Ausgabe dann weniger elegant > ausfällt. > > [c] > ValueNumber numberValueVoltage; > ValueNumber numberValueTime; > ValueString stringValueError; > //... > numberValueVoltage.Draw(); > numberValueTime.Draw(); > stringValueError.Draw();[/c]
-
Thread
AVR-GCC pointer post-increment
t i= 0; i < 16; ++i) { foo = *(ptr)++; // oder: // foo = string[i]; // (erzeugt gleichen asm) } while (1); } [/c] Allerdings programmiere ich lieber mit einem C++ Projekt. Dort müsste ich das dann in extern "C" packen? Nur "checkt" der Compiler "__flash" irgendwie nicht, obwohl der C-Compiler -std-gnu99 gesetzt hat. Was hab ich vergessen?: [c] extern "C" { const char __flash string[16] = "Hello World!"; }; [/c] Comp. Error: "expected initializer before 'string'" Wenn
-
Thread
Operator+ overloading, 2D Vector
Matrix<42, 43, std::string> [/c] macht ggf. wenig Sinn.
::string> matrixB({ {"9", "8", "7"}, {"6", "5", "4"}, {"3", "2", "1"} }); Matrix<3, 3, std::string> matrixC = matrixA + matrixB; std::cout << "Matrix A:\n" << matrixA; std::cout << "Matrix
-
Thread
Frage zu Klassen Gesperrt
Funktionen die einen versteckten self Patameter auf ein Element diesen Strukturtyps beinhalten. [c] struct string { char *data; } assign(struct string *self,char *value) { self->data=strdup(value); } destroy(struct string *self) { free(self->data); } [/c] ist dann [c] class string { char *data; string(char *value) { data=strdup(value); } ~string() { free(data); } } [/c] mit dem Zusatzeffekt, dass ~string automatisch aufgerufen wird
-
Thread
ADC - Wert berechnen
so nicht, weil 10/819=0 ist als Integerrechnung. Siehe [[Festkommaarithmetik]]. Bestenfalls so. [c] p = (((int32_t)adc-205)*10)/819; [/c] Erst alle Multiplikationen, dann alle Divisionen.
Generell finde ich, dass "unüberlegt" und "programmieren" nicht zusammenpassen. Denn ich kann z.B. [c] int i = 1000000000; i += 1; [/c] schreiben und bekomme 1000000001 heraus. Wenn ich aber [c] float f = 1000000000.0; f += 1.0; [/c] schreibe, dann ist f nach dem ersten Befehl annähernd 1000000000
-
Thread
Index von Array: welcher Datentyp in C
Hallo, ganz simpel, verwende [c]size_t[/c]
OpenBSD-Sources angeschaut. Link: https://github.com/openbsd/src/blob/master/include/ctype.h Auszug: [c] #if !defined(_ANSI_LIBRARY) && !defined(__cplusplus) __only_inline int isalnum(int _c) { return (_c == -1 ? 0 : ((_ctype_ + 1)[(unsigned char)_c] & (_U|_L|_N))); } [/c] Hier wird der Spezialfall
-
Thread
time.h bei ESP32 Probleme
aber ich einige Funktionen aus time.h werden bei mir nicht erkannt. andere aber widerum schon [c] #include <string.h> #include <time.h> #include "freertos/FreeRTOS.h" #include "freertos/task.h" #include "freertos/event_groups.h" #include "esp_system.h" #include "esp_wifi.h" #include "esp_event.h
time.h hat es schon vor ewigen Zeiten in den ANSI/ISO C Standard geschafft. Daher verstehe ich die Aufregung um POSIX nicht. Der C Standard hat eine Einschränkungen für time.h auf Freestanding-Environments. Nämlich dass die Funktionen daraus nicht implementiert
-
Thread
AVR ATtiny824 on-chip temperature sensor
USART0_sendString("ADC: "); USART0_sendString(chst); sprintf(chst, "%d", temperature_C); // integer to string USART0_sendString(" temperature: "); USART0_sendString(chst); USART0_sendString(" °C"); USART0_sendString("\r\n"); _delay_ms(2000); } } [/c]
-
Thread
definiere ESP32 in ESP-Projket für FastLED
esp-idf-lib genommen. Hier wird kein Arduino für benötigt. Hier habe ich aber ein generelles Problem. [c] #include <string.h> #include <stdio.h> #include "freertos/FreeRTOS.h" #include "freertos/task.h" #include "freertos/event_groups.h" #include "driver/uart.h" #include "driver/gpio.h" #include
if (++c >= COLORS_TOTAL) { c = 0; } } } void initLed(void) { led_strip_install(); xTaskCreate(ledTask, "ledTask", 8000, (void*)1, tskIDLE_PRIORITY, NULL);
-
Thread
8-Bit CPU Selbstbau
kannst da aber nicht mehr machen, das ist >30 Jahre alte Technik. Blöderweise ist ein guter FPGA uC anders aufgebaut als ein guter TTL uC oder ein uC in einem IC, die technische Basis macht da viele Vorgaben. > Zu FPGA‘s kann ich nichts sagen aber ich könnte mich mal anfangen damit > zu beschäftigen
, was C Compiler benötigen.
-
Thread
RP2040 serielle Schnittstellen und CDC zeitgleich verwenden (C-SDK)
Für mich ist eine saubere Kommunikation sehr wichtig. Bitte um Hilfe anbei der Code: Controlbox.c: [c] #include <stdio.h> #include <string.h> #include "pico/stdlib.h" #include "hardware/uart.h" #include "hardware/irq.h" #include "hardware/gpio.h" // UART defines // UART0 #define UART_ID0
SDK version 1.4.0 (or later) required. Your version is ${PICO_SDK_VERSION_STRING}") endif() project(ControlBox C CXX ASM) # Initialise the Raspberry Pi Pico SDK pico_sdk_init() # Add executable. Default name is the project name, version 0.1 add_executable(ControlBox
-
Thread
String löschen mit .clear()
Hallo, bin mit dem String durcheinander gekommen. Idee ist, über Konsole werden ganze Zahlen eingetippt, daraus soll eine gerade und ungerade Summe gebildet werden, hier ein Ausschnitt; [c] // *ptrToArray - pointer to the
Du kannst nicht auf das i'te Zeichen eines leeren Strings zugreifen. [c] tempString.push_back(ptrToArray[y]); [/c] wäre eine gültige Methode. Viele STLs haben eine Möglichkeit, solche Fehler zur Laufzeit zu erkennen. Guck mal, welche Möglichkeiten
-
Thread
GCC Linker per Linker Script oder über Kommandozeile Parameter zum Setzen einer Konstante mitgeben
Möglichkeit dem Linker einen uint32 Wert mitzugeben und damit eine Konstante zu initialisieren. [c] const uint32_t app_checksum __attribute__((section(".appdata"), used)) = 0xAABBCCDD; const uint32_t app_numpages __attribute__((section(".appdata"), used)) = 100; // num of 2kB pages [/c] [c
*/ .rodata : { . = ALIGN(4); *(.rodata) /* .rodata sections (constants, strings, etc.) */ *(.rodata*) /* .rodata* sections (constants, strings, etc.) */ KEEP(*(.appdata)) /* checksum and length of the app */ . = ALIGN(4); } >FLASH [/c] [c] $
-
Thread
Webserial Chrome
den Serial-reader-Stream koppeln. Übrigens, wenn du sowieso schon am "Streamen" der Daten bist: [c] // untested const lineTransformer = new TransformStream({ start(controller) { this.partialLine = ''; }, transform(chunk, controller) { const str = this.partialLine + chunk.toString
kann ich den LineTransformer dann > lesen? wie bisher auch, nur dass eben immer ein einzeiliger String rausfällt. [c] const reader=readLineStream.getReader(); while (true) { const { value, done } = await reader.read(); // value ist jetzt ein string, und immer eine Zeile. ... [/c
-
Thread
AVR64DD20 - USART stürzt bei großem Buffer ab
0x0C 0x94 0x51 0x00 - warum stoppt es nicht an dieser Stelle, ich dachte immer, in C seien Strings mit 0x00 terminiert?
wieder, also > ganz grob nach 6 s entsprechend 64 KiB bei 115200 kBd) und findet dort > 0x0C 0x94 0x51 0x00 - warum stoppt es nicht an dieser Stelle, ich dachte > immer, in C seien Strings mit 0x00 terminiert? Gute Frage.
-
Thread
Arduino UNO R4 in Win10 nicht erkannt
Detail-Infos an. Einziges Manko (neben der altbackenen Benutzerführung): Er kann bei USB-Geräten die String-Deskriptoren nicht anzeigen...
Die Magie passiert im Windows-Kernel. Und die willst du nachbilden? Die Treiberdateien sind in C:\Windows\System32\DriverStore\FileRepository . Aber mit Löschen oder Hineinkopieren ist es wie gesagt nicht getan (was unter laufendem Windows wie gesagt sowieso nicht geht). Thomas Z. schrieb
-
Thread
Visual Studio erlaubt keine Zeiger auf eine C++/CLI-Verweisklasse!
Man sollte cstring bevorzugen sonst gibts schnell böse Überraschungen. Aber warum kein normaler C++ String? string.h ist die C Bibliothek für strings :D
= gcnew System::String("Mein Toller Text"); [/c]
-
Thread
Gaming-PC 150EUR ohne HDD/SSD
grossartig dran geforscht warum, angeschlossen waren die. unter "lshw" gibts mehr Details: [c] root@mint:~# lshw mint description: Desktop Computer product: MS-7978 (Default string) vendor: MSI version: 2.0 serial: Default string width: 64 bits capabilities: smbios-3.0.0 dmi-3.0.0 smp
device PNP0c02 physical id: b capabilities: pnp configuration: driver=system *-pnp00:0b product: PnP device PNP0c02 physical id: c capabilities: pnp configuration: driver=system *-scsi physical id: d bus
-
Thread
-Os liefert schlechtes Ergebnis Gesperrt
%10]; 12a: 2a e0 ldi r18, 0x0A ; 10 12c: 62 2f mov r22, r18 12e: 0e 94 36 03 call 0x66c ; 0x66c <__udivmodqi4> 132: e9 2f mov r30, r25 134: f0 e0 ldi r31, 0x00 ; 0 136: ef 5f subi r30,
0f add r25, r25 2bc: 99 0f add r25, r25 2be: 89 0f add r24, r25 2c0: 88 0f add r24, r24 2c2: 9e 2f mov r25, r30 2c4: 98 1b sub r25, r24 2c6: 89 2f mov r24, r25 2c8: e9 2f mov r30, r25 2ca: f0 e0 ldi
-
Thread
Generics in .do Script auf konstante setzen
.do Scripte. Gibt es dafür eine Möglichkeit? [vhdl] package ParaSet_pkg is begin constant C_ParaSet0 : integer:= 13; constant C_ParaSet1 : integer:= 99; end; ... use work.ParaSet_pkg.all; entity MyTestbench is generic( G_CurrentParaSet : integer := C_ParaSet0 ); end entity; architecture RTL of MyTestbench is begin assert false report "G_CurrentParaSet :" & to_string(G_CurrentParaSet); end architecture; [/vhdl] das funktioniert leider nicht: [code] vsim MyTestbench -gG_CurrentParaSet=C_ParaSet1 [/code] In diesem Beispiel besteht ein Parameter Set nur
-
Thread
Meadow Desktop - bequemer Hardware-Zugriff aus Windows
macht. Im nächsten Schritt ist das eigentliche Hochfahren des Betriebssystemkerns erforderlich: [c] static async Task Main(string[] args) { await MeadowOS.Start(args); } [/c] Zu guter Letzt findet sich dann das eigentliche Prozessrechnerprogramm, das sich vom Aufbau
Arbeitsschleife zu platzieren und so Rückschlüsse über die „Arbeitsgeschwindigkeit“ zu gewinnen: [c] while (true) { _c0.State = !_c0.State; _c0.State = !_c0.State; _c0.State = !_c0.State; _c0.State = !_c0.State; Thread.Sleep(
-
Thread
Windows - CP2012 USB to UART Bridge Controller
C-hater schrieb im Beitrag #7436760: > Michael schrieb im Beitrag #7436739: > >> Habe nun mal Screenshot angehangen. > > Immer noch keinen von der Anzeige im Gerätemanager... wusste nicht, dass
Standardboards? ja ist ein standard board. ESP8266MOD. Generic ESP8266 Module in IDE ausgewählt. Dieser String ist in der board.txt nicht vorhanden. Wenn ich das richtig sehe, sieht die Struktur für diese Bridge so aus: ############ (neue Boarddefinition XIAO_ESP32C3.name=XIAO_ESP32C3 XIAO_ESP32C3.vid.0
-
Thread
Stromzähler DVS7410.1T.G2 - keine Momentanleistung über SML
alle 1s - Kurzer Datensatz (ohne P) - Erweiterter Datensatz (mit P)[/code] Tasmota SML Script: [c]>D >B =>sensor53 r >M 1 +1,3,s,0,9600,Haus 1,77070100010800FF@1000,Zaehlerstand,kWh,total_in,0 1,77070100600100FF@#,Server ID,,Server_ID,0 #[/c] Davor war ich besitzer eines "unfairen" Zählers
0 1,7707010060320101@#,Meter Nr,,Meter_number,0 1,77010b0a01445a47@#,Unbekannt,,unknown,0 # [/c] Tasmota SML kann nur ein String Element @# dekodieren, alle Weiteren erhalten die Dekodierung von davor.
-
Thread
OPTIMIERTE SOLARANLAGEN dank "Jugend forscht"? | Einfach genial | MDR
die (noch) hohe Solar-Spannung bei geringem Strom in geringe Spannung bei hohem (angeforderten) String-Strom transformiert. Also DCDC-Wandler - Induktivitäten scheinen ja da auf dem PCB drauf zu sein. Diese Erfindung gibt also schon, insofern klingt es schon etwas hochtrabend am Ende des Beitrages,
nicht. Warum sollte das mehr als 1-2 Euro pro Wafer kosten? Ein bisschen Leistungselektronik, ein µC im Centbereich, ..., das meiste die Anbindung und Unterbringung im Modul. Mit entsprechend energiesparenden und vermeshten Sendemodulen kann man in den (künftig geplanten) Solarparks direkt eine Übersicht
-
Thread
Code optimieren ?
Der Onlinekompiler: https://www.onlinegdb.com/online_c_compiler verwendet 4 Bytes pro Array: [c] /****************************************************************************** Online C Compiler. Code, Compile
Man darf auch in C zwecks besserer Lesbarkeit eine Berechnung in mehrere Schritte und Zeilen zerlegen. Eher so. [c] // lineare Interpolation long tmp; tmp = (adc_value - kennfeld[max].adc_value) * (kennfeld
-
Thread
ESP32 Server Callback Funktion reagiert nicht
Hallo, ich arbeite mit WebServer.h und habe folgende Callback Funktionen [c] server.on("/switchButton", switchButton); // Schalter darstellen server.on("/button",ButtonPress); // Reaktion auf Schalterdruck [/c] Die erste ruft mir meine Seite mit den Buttons auf, die zweite soll auf GET Anfragen der Buttons reagieren [c] void ButtonPress() { if (server.args() > 0) { String nummer = server.arg("nummer"); } // Verarbeitung der Numern ......... /* Anfrage bestätigen */ server.send(200, "text
-
Thread
c# Geräte anzeigen
der word-macro-aufzeichner ergibt für den Pfad "Dieser PC\KINGKONG MINI2\SD-Karte\kmv\": [c] Sub Makro68() ' ' Makro68 Makro ' ' Documents.Open FileName:= _ "C:\Users\karl\AppData\Local\Microsoft\Windows\INetCache\Content.MSO\9360BC6C.tmp" _ , ConfirmConversions:
Encoding:=1252 Selection.EscapeKey Selection.EscapeKey ' ActiveWindow.Close End Sub [/c] in c# umgesetzt [c] string dir = @"C:\Users\karl\AppData\Local\Microsoft\Windows\INetCache\Content.MSO\"; if (Directory.Exists(dir)) { string[] files
-
Thread
[Python] XML Parsen
parsen, ich kann mir ja dann auch die üblichen Verdächtigen in eine Separate Funktion übergeben. z.b. string GetDirectVal(Device, MetaStructure, MetaProperty). Das mache ich aber heute nimmer :-D [code] from xml.dom import minidom XMLOut = minidom.parse("ADUReport.xml") # Device # | # ->
hddoverview# python3 test.py Physical Drive (4 TB SAS HDD) 2I:1 - ID: AC:2799134361,PD:0 - SN: Z1ZA22C5 Physical Drive (4 TB SAS HDD) 2I:2 - ID: AC:2799134361,PD:1 - SN: Z1ZA23TW Physical Drive (1.2 TB SAS HDD) 1I:1 - ID: AC:1715036241,PD:0 - SN: 001415DGSPLF KZHGSPLF Physical Drive (1.2 TB
-
Thread
STM32 CubeIDE HAL: printf() Ausgabe über UART
Probiere mal [c] int _write(int file, char *ptr, int len) { for (int i=0; i<len; i++) { char c=*ptr++; // hier das Zeichen c irgendwo ausgeben } return len; } [/c] Da kannst
deinen HAL_UART_Transmit Call unterbringen. Ich rate mal: HAL_UART_Transmit(&UartHandle, (uint8_t *)&c, 1, 0xFFFF);
-
Thread
sscanf : Wie optimiere ich den String?
END sprintf Formatstring ist "%02d%02d%02d,%02d%02d%02d,%.2f,%.2f,%u,%u,END" an, d.h. dieser String erscheint auch auf meinem Handy, wenn ich meine Fritzbox anfunke mit dem Browser. Klar kann man den String auch mühsam zerlegen mit den ganzen String Funktionen, wobei ChatGPT sehr wertvolle Hilfe
ruft dann erst sscanf damit auf. ich weiss nicht was man da stöppeln muss http.begin(serverPath.c_str()); int httpResponseCode = http.GET(); if (httpResponseCode>0) { String payload = http.getString(); holt einfach alles in einen String rein und fertig.
-
Thread
ESP32 Arduino IDE vs PlatformIO Speicheranordung
veröffentlicht wurde. Ich habe das Ganze jetzt auf die PlatformIO IDE umgebaut, also ino dateityp in h und c files aufgeteilt. Soweit passt das auch alles und das Ganze kompiliert und funktioniert soweit (fast). Unter anderem werden die Radiosender im PROGMEM abgelegt, das sieht folgendermaßen aus. [c]
Abgesehen davon, daß in den drei Programmzeilen nichts zu erkennen ist, was die Strings irgendwie ins Eeprom befördern könnte, kommen solche Unterschiede üblicherweise durch unterschiedliche makefiles der IDEs. Das eine schreibt anscheinend Eeprom-Daten automatisch, das andere halt nicht
-
Thread
HS USB MSC mit Stm32F4 und USB3300
4 ------ bLength : 0x16 (22 bytes) bDescriptorType : 0x03 (String Descriptor) Language 0x0409 : "MSC Config" ------ String Descriptor 5 ------ bLength : 0x1C (28 bytes) bDescriptorType : 0x03 (String Descriptor)
bNumInterfaces : 0x01 bConfigurationValue : 0x01 iConfiguration : 0x04 (String Descriptor 4) Language 0x0409 : "MSC Config" bmAttributes : 0xC0 D7: Reserved, set 1 : 0x01 D6: Self Powered : 0x01 (yes) D5: Remote Wakeup : 0x00 (no)