Zum schreiben öffnen geht nicht. Du bekommst höchstens Lesezugriff über ein CMemFile...:
// Erstmal Zugriff auf die Resource holen
HINSTANCE hInst = AfxGetResourceHandle();
HRSRC hRsrc = ::FindResource(hInst, MAKEINTRESOURCE(IDR_MYFILE), "MYFILE");
ASSERT(hRsrc);
// Wenn hRsrc nicht NULL ist Länge und Inhalt der Resource holen
DWORD len = SizeofResource(hInst, hRsrc);
BYTE* lpRsrc = (BYTE*)LoadResource(hInst, hRsrc);
ASSERT(lpRsrc);
// Nun kann man CMemFile aus den MFC's benutzen um auf die Resource zuzugreifen
CMemFile file(lpRsrc, len);
Wenn du Schreibzugriff haben willst musst du die komplette Exe auseinandernehmen und die Resourcen modifizieren. Das Format einer Win32-Exe gibts auf www.wotsit.org in der Section Binaries zum Download...
CString gehört zu den MFC-Klassen, die nicht von CObject abgeleitet sind. Es ist also eine "Hilfsklasse" wie CPoint, CRect, CSize, CTime, ... .
Man kann CString z.B. auch in Konsolen verwenden, in dem man afx.h einbindet.
Hallo ich habe eine Windows Hilfe zu einem Programm erhalten. Wenn ich nun die Hilfe zu meinem Projekt hinzufüge, sprich die erzeugten Dateien austausche kommen beimkompilieren keine Fehler. Starte ich das Programm und klicke auf den Help Button kommte eine MessageBox mit "Das Thema ist nicht vorhanden. Fordern sie beim SW-Hersteller die aktuelle Hilfedatei an (129)".
Weis irgendjemand was da los ist? Ich habe keine Ahnung von so Hilfedateien???
Danke für alle Tipps
Für reine Heimanwender kann man so eine Software auch kostenlos abgeben. Ist bisher noch nicht vorgekommen, aber durchaus denkbar.
Ich muß nur immer auch an meine Katze denken, daß sie jeden Tag was zu fressen bekommt und zu Weihnachten ein neues Spielzeug.
Ich würde mal in der MSDN und im FAQ nach der ActiveX-Schnittstelle MSCOMM schauen.
Es gibt in der MSDN auch ein Beispiel (VCTERM), das bei mir allerdings nicht läuft...
Und mit Code kann ich auch nicht dienen, weil das was ich bisher damit gemacht habe nur Fehler produziert hat...
simon
ok also ich hab festgestellt der Fehler mir -1 -1 -1 kommt nur wenn ich einen anderen Tag im Kalender wähle als der der standardgemäß selektiert ist, das wäre heute der 7.
alle daten mit 7.XX.XXXX gehen
bitte irgendjemand muss doch eine idee haben
Hi Leute,
erstmal dickes Danke und richtig dickes Lob an Euch.
Die Antworten waren echt schnell.
So wie es beschrieben war hat es doch tatsächlich funktioniert.
Das Problem ist nur, sobald ich dann wieder ein Objekt zufüge und eine Variable vergebe, ist die Klasse wieder verschwunden...
Ist schon merkwürdig.
Dann muss ich das Formular eben erst ausdesignen und dann alles nochmal, dann sollte es funktionieren.
Bis dahin verbleibe ich erstmal
Mfg
Carfield
Hallo!
Ich probiere einen DDEServer zu programmieren um mit Excel zu kommunizieren. Bisher lief alles gut und hat auch funktioniert, aber jetzt möchte ich probieren die Prozesse zum ermitteln der Daten für Excel in Threads auszulagern und von dort direkt Ergebnisse an den DDEServer zu senden. Genau dort liegt das Problem, wenn ich versuche aus dem Thread heraus Daten an den DDEServer zu schicken dann erscheinen diese in Excel nicht. Normalerweise (ohne Threads) steht sofort in Excel der aktuelle Wert der Daten, die dem Server zur Verfügung gestellt wurden. Nur wenn ich es aus dem Thread heraus probiere aktualisieren sich die Daten in Excel nicht. Ich habe mir dann die letzte Fehlermeldung des Servers ausgeben lassen und in der msdn nach einer Erläuterung gesucht. Es tritt dieser Fehler auf: "DMLERR_INVALIDPARAMETER".
[url]http://msdn.microsoft.com/library/en-us/winui/WinUI/WindowsUserInterface/DataExchange/DynamicDataExchangeManagementLibrary/DynamicDataExchangeManagementReference/DynamicDataEx changeManagementFunctions/DdeGetLastError.asp?frame=true[/url]
hier mein code:
/////////////////////////////////////////////////
/////////////////////////////////////////////////
// Mein Code
/////////////////////////////////////////////////
/////////////////////////////////////////////////
UINT CMeinThread(LPVOID pParam)
{
CMainFrame* mFrame = reinterpret_cast<CMainFrame*> (pParam);
// Text an den DDEServer übergeben
mFrame->m_Server.m_StringItem1.SetData("Mein Text mit Thread");
//Fehlercode anfordern
BOOL err = mFrame->m_Server.GetLastError();
return 0;
}
void CMainFrame::OnOhnethread()
{
// Text an den DDEServer übergeben
m_Server.m_StringItem1.SetData("Mein Text ohne Thread");
//Fehlercode anfordern
BOOL err = m_Server.GetLastError();
}
void CMainFrame::OnMitthread()
{
AfxBeginThread(CMeinThread, this);
}
//////////////////////////////////////////////////
//////////////////////////////////////////////////
//Ende meines Codes ;=)
//////////////////////////////////////////////////
//////////////////////////////////////////////////
Ich freue mich über jede Hilfe!
mfg ExElNeT
So habs probiert, wie ich oben gepostet habe, und das hat erwartungsgemäß nicht gefungzt
ABER
mit static_cast<CMyApp *>(AfxGetApp())->SocketInit(...);
hats geklappt
Werds jetzt noch mal mit den zusätzlichen Klammern probieren, da es besser aussieht
Und Danke!
Was ist daran so schwierig?
int spVorname = 2; // Spaltennummer für Vorname
for( int i=0; i<listCtrl.GetItemCount(); i++)
if( listCtrl.GetItemText( i, spVorname, str) == "Herbert") break;
[ Dieser Beitrag wurde am 07.11.2002 um 16:19 Uhr von RenéG editiert. ]
Meinst du eine Dll?
Wenn ja dann mit LoadLibrary und GetProcAddress.
Das geht auch wenn du die entsprechende .lib dazulinkst
und via _cdeclspec(dllimport) void MyFunc(); die Funktion
einbindest.