Ú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
Hirdetés
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- ÁRGARANCIA! Épített KomPhone i5 13400F 32/64GB RAM RX 7700 XT 12GB GAMER PC termékbeszámítással
- AKCIÓ! ASRock H310CM i3 9100F 8GB DDR4 240GB SSD 1TB HDD GTX 1060 3GB AeroCool Strike-X 500W
- Kingmax 1x2GB DDR2 800 RAM eladó
- ÁRGARANCIA!Épített KomPhone Ryzen 7 7700X 32/64GB RAM RTX 5070Ti 16GB GAMER PC termékbeszámítással
- LG 65C2 - 65" OLED evo - 4K 120Hz 1ms - NVIDIA G-Sync - FreeSync Premium - HDMI 2.1 - PS5 és Xbox!
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: Promenade Publishing House Kft.
Város: Budapest