Hirdetés
- AMD Navi Radeon™ RX 9xxx sorozat
- Mini PC
- Milyen processzort vegyek?
- Külső merevlemezek - USB, eSATA, FireWire HDD
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Azonnali fotós kérdések órája
- NVIDIA GeForce RTX 3060 Ti / 3070 / 3070 Ti (GA104)
- Nem okoz az adattárolón hibát a Windows 11 augusztusi frissítése
- Monitor hiba topik
- Amazon Kindle
Ú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!
- GYÖNYÖRŰ iPhone 12 mini 128GB Black -1 ÉV GARANCIA - Kártyafüggetlen, MS3398, 94% Akkumulátor
- GYÖNYÖRŰ iPhone 12 mini 128GB Green -1 ÉV GARANCIA - Kártyafüggetlen, MS3395, 94% Akkumulátor
- GYÖNYÖRŰ iPhone 12 mini 128GB Purple -1 ÉV GARANCIA - Kártyafüggetlen, MS3392, 94% Akkumulátor
- HIBÁTLAN iPhone 12 mini 128GB Purple -1 ÉV GARANCIA - Kártyafüggetlen, MS3392, 94% Akkumulátor
- HIBÁTLAN iPhone 13 Pro Max 128GB Graphite -1 ÉV GARANCIA - Kártyafüggetlen, MS3391
- Bomba ár! Dell Latitude 7390 - i7-8GEN I 16GB I 256GB SSD I 13,3" FHD I HDMI I Cam I W11 I Gari!
- Fujitsu LIFEBOOK E449 i3-8130U 12GB 512GB 14" FHD 1 év garancia
- ASUS TUF Dash F15 - 15.6"FHD 144Hz - i7-11370H - 16GB - 1,5TB SSD - RTX 3060 6GB - Win11
- Telefon felvásárlás!! Honor 90 Lite/Honor 90/Honor Magic5 Lite/Honor Magic6 Lite/Honor Magic5 Pro
- HIBÁTLAN iPhone 13 mini 128GB Green -1 ÉV GARANCIA - Kártyafüggetlen, MS3336
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest