- Samsung Galaxy Watch6 Classic - tekerd!
- Honor 200 - kétszázért pont jó lenne
- Telekom mobilszolgáltatások
- Samsung Galaxy Watch7 - kötelező kör
- iPhone topik
- Xiaomi 15 - kicsi telefon nagy energiával
- Samsung Galaxy S25 - végre van kicsi!
- One mobilszolgáltatások
- Garmin Venu X1 - vékony, virtuóz, váltságíjas
- Motorola Edge 50 Neo - az egyensúly gyengesége
Hirdetés
Köszönjük a sok biztatást, támogatást! Egy rövid ideig még féláron tudsz hirdetni, előfizetni!
Új hozzászólás Aktív témák
-
Sziasztok.
Van két C# winformom akik szeretném ha üzzennének egymásnak egyszerű stringekkel: AApp BApp
Mind a kettőnél ez a kód:
private static extern int SendMessage(IntPtr hwnd, int wMsg, int wParam, ref COPYDATASTRUCT lParam);
private const int WM_COPYDATA = 0x4A;
[StructLayout(LayoutKind.Sequential)]
struct COPYDATASTRUCT
{
public int dwData;
public int cbData;
public int lpData;
}private void sendMessage(string message, string param)
{
string sepaChar = ";";
message = message + sepaChar + param;
COPYDATASTRUCT cds;
cds.dwData = 0;
cds.lpData = (int)Marshal.StringToHGlobalAnsi(message);
cds.cbData = message.Length;
Process currentProcess = Process.GetCurrentProcess();
Process[] processCollection = Process.GetProcesses();
foreach (Process p in processCollection)
{
if (p.ProcessName == "AApp/BApp")
{
SendMessage(p.MainWindowHandle, (int)WM_COPYDATA, 0, ref cds);
AddDebugText("> OUT MSG: \t" + message);
}
}
}
protected override void WndProc(ref Message m)
{
switch (m.Msg)
{
case WM_COPYDATA:
COPYDATASTRUCT CD = (COPYDATASTRUCT)m.GetLParam(typeof(COPYDATASTRUCT));
byte[] B = new byte[CD.cbData];
IntPtr lpData = new IntPtr(CD.lpData);
Marshal.Copy(lpData, B, 0, CD.cbData);
string strData = Encoding.Default.GetString(B);
MessageProcessor(strData);
break;
}
base.WndProc(ref m);
}
Szóval úgy tűnik működik. Hogyha a B program indul előbb akkor szépen megvan a kérdés/válasz. Viszont fordított esetben már B programhoz nem érkezik meg a válasz.Mit rontok el?
-
Sziasztok
Két applikációm között kellene adatokat megosztanom.
Mi a legegyszerűbb/legtisztább implementáció mondjuk egy objektum átpasszolására?
WCF-et néztem szimpatikusnak tűnik a leírás alapján de csak egy 12éves példát találtam.
Csinált valaki ilyet? Hogy induljak el? Van egyszerűbb mód? -
válasz
Alexios #9438 üzenetére
Kösz ezt kerestem
Ez a struct egy globális változó. Van ilyenből még 2-3 darabom és mindegyikkel kb ua. kell csinálom.
joysefke
Egy kicsit speciális az eset. Ezek a structok speciális "listák" egy adatbázisból olvasok bele. Majd bizonyos függvények listázzák és a structban van eltárolva hogy a GUI-n éppen hol tart a lista. Ezeket az index paramétereket módosítom.
Lehetne máshogy felépíteni?
Jelenleg ez a szerkezete:public struct myCustomList
{
public string listName;
public List<Items> items;
public int onePageElement;
public string actState;
public int ListIndex;
public int pages;
public int actpage;
public string title;
} -
Sziasztok
Objektum orientált kérdésem lenne.
Van egy saját struktúrám hívjuk customList -nek.
Form létrehozásánál rögtön példányosítok egyet:private customList myList = new customList ();
Majd az egyik függvényemmel módosítani szeretném az értékét. Kb így néz ki:
private void changeState(myList list)
{
érték módosítás
}
Na és itt jön a problémám hogy az átpasszolt listátból létrehoz a függvény magának egy példányt és nem változik az értéke az átadott listámnak. Próbáltam static-al példányosítani de ugyanaz.
Persze ha visszadom a függvény visszatérési értékének a listát és azt egyenlővé teszem a customListámmal akkor jó, de az nem túl elegáns.
Hogy tudnám rávenni hogy az én példányomat módosítsa a függvény?
C-ben átadnám a pointert... -
Van két programom. Szeretnék adatot átadni a két program között? Mi a legegyszerűbb módja?
-
Sziasztok
XML Beolvasást csinálok így:
if (File.Exists(filename) == true)
{
toolStripStatusLabel1.Text = "Setup Loading";
XDocument doc = XDocument.Load(filename);
var data = from item in doc.Descendants("NemoControlData")
select new
{
DPCO = item.Element("Data").Element("PCO").Value,
DCaption = item.Element("Data").Element("Caption").Value,
SConnect = item.Element("Data").Element("Connection").Value,
N1 = item.Element("Name").Element("Name_IN").Value,
...A programom elszáll ha nincs a struktúrában az elem. Lehet valahogy ez ellen védekezni?
-
válasz
sztanozs #5163 üzenetére
Azt hiszem megvan! Köszönöm!!
private void DBCONNECT(string SQCMD)
{
if (SQCMD != null & SQCMD!="" & SQCMD!=" ")
{
NCD.DBQuery.Clear();
OdbcConnection Conn = new System.Data.Odbc.OdbcConnection(NCD.SConnect);
OdbcCommand catCMD = new OdbcCommand(SQCMD, Conn); //exec dbo.ccTV '05kM'
Conn.Open();
OdbcDataReader myReader = catCMD.ExecuteReader();
int fCount = myReader.FieldCount;
for (int i = 0; i < fCount; i++)
{
String fName = myReader.GetName(i);
}
int fRcount = 0;
while (myReader.Read())
{
NCD.DBQuery.Add(new List<String>()); //egy új allista hozzáadása
for (int i = 0; i < fCount; i++)
{
NCD.DBQuery[fRcount].Add(myReader[i].ToString());
}
fRcount++;
}
myReader.Close();
Conn.Close();
}
} -
válasz
Alexios #5161 üzenetére
MEgoldottam Sting Arrayel. De csodálkozom hogy nem lehet C#-ban dinamikus tömbnek értéket adni...
Megoldás:int fCount = myReader.FieldCount;
for (int i = 0; i < fCount; i++)
{
String fName = myReader.GetName(i);
}
int fRcount = 0;
while (myReader.Read())
{
fRcount++;
}
myReader.Close();
string[,] Query = new string[fRcount, fCount];
myReader = catCMD.ExecuteReader();
int fRcount2 = 0;
while (myReader.Read())
{
for (int i = 0; i == fCount-1; i++)
{
Query[fRcount2, i] = myReader[i].ToString();
}
fRcount2++;
} -
válasz
Alexios #5159 üzenetére
Ilyenkor hogy működik az értékadás?
while (myReader.Read())
{
fRcount++;
Query[fRcount][0] = myReader[0].ToString();
Query[fRcount][1] = myReader[1].ToString();
Query[fRcount][2] = myReader[2].ToString();
}Így próbáltam de azt mondta: Additional information: Az index az engedélyezett tartományon kívül esett. Az index nem lehet negatív, és kisebbnek kell lennie a gyűjtemény méreténél.
-
Sziasztok
SQL lekérdezés kimenetelét egy 2D-s string tömben szeretném tárolni.
Én így gondoltam:
int fRcount = 0;
string[,] Query;
while (myReader.Read())
{
fRcount++;
Query[fRcount,0] = myReader[0].ToString();
Query[fRcount,1] = myReader[1].ToString();
Query[fRcount,2] = myReader[2].ToString();
}Hibaüzenet:
Error 1 Use of unassigned local variable 'Query'Miért nem érvényes a ciklusban a változó? Hogy csináljam meg?
-
Sziasztok
1.)
Tudna mondani valaki egy egyszerű példát XML olvasásra.
Konkrétan olyan kellene, hogy egy változó kapja meg az xml property értékét.
Az írás már megy!2.)
Globális változókat hogyan és hol kell deklarálni?Egyenlőre Ennyi!
Köszönöm
Üdv!
Új hozzászólás Aktív témák
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- Wheel Stand Pro állvány szimulátorokhoz
- HP ZBook Studio 8 WorkStation i7-11850H 16GB 512GB Nvidia Quadro T1200 15.6" FHD IPS 1 év garancia
- VKB Gunfighter MK IV - 'Modern Combat Edition' Pro - Botkormány - Nem twistes
- ThinkPad T14 Gen3 14" FHD+ IPS érintő i5-1250P 16GB 256GB NVMe ujjlolv IR kam gar
- HP ZBook Studio 8 WorkStation i7-11850H 16GB 256GB Nvidia Quadro T1200 15.6" FHD IPS 1 év garancia
- Honor MagicBook 16 Ryzen 5 5600H 16GB 512GB FHD 144Hz
- HIBÁTLAN iPhone 13 512GB Starlight -1 ÉV GARANCIA - Kártyafüggetlen, MS3075
- GYÖNYÖRŰ iPhone 12 mini 64GB Black -1 ÉV GARANCIA - Kártyafüggetlen, MS2954
- 15,6" Dell Latitude laptopok: E6540, E5550, E5570, 5580, 5590, 5500, 5501, 5510/ SZÁMLA + GARANCIA
- LG 65C3 - 65" OLED evo - 4K 120Hz 1ms - NVIDIA G-Sync - FreeSync Premium - HDMI 2.1 - PS5 és Xbox!
Állásajánlatok
Cég: FOTC
Város: Budapest