HILFE! wieso ist memcpy in afxtmpl.h mehrdeutig?

Beginnerin

Mitglied
Hallo,

ich versuche soeben in ein fertiges Programm einen Email- Versand einzubauen.
Dazu habe ich mir die Smtp.cpp und Smtp.h runtergeladen (http://www.codeproject.com/internet/csmtpconn.asp#Usage)

Sobald ich aber nun in der Header-Datei meines Programmes das
#include "smtp.h" eintrage, erhalte ich folgenden Fehler:
*********************************************************************
c:\programme\microsoft visual studio\vc98\mfc\include\afxtempl.h(373) : error C2668: 'memcpy' : Mehrdeutiger Aufruf einer ueberladenen Funktion
c:\programme\microsoft visual studio\vc98\include\xlocmon(106) : Bei der Kompilierung der Member-Funktion 'void __thiscall CArray<class CSMTPAddress,class CSMTPAddress &>::SetSize(int,int)' der Klassenvorlage
*********************************************************************
Was muss ich tun? Ich hab schon ewig viel an den Projekteinstellung ausprobiert. Hab mir natürlich auch den "Usage" Punkt des oben angegebenen Links angesehen. Hab sogar eine andere afxtempl.h eingefügt, falls die kaputt gewesen wäre.

Ich weiß wirklich nicht, was noch falsch sein könnte. Ich mach noch nicht lang c++ und bin bei dieser fehlermeldung absolut überfragt :-(

HILFEE!! :-(
 
moin


Caste den Wert den du übergeben willst, mal genau auf den Wert der erwartet wird.
Ich denke mal das in smtp.h ein Prototyp für die Funktion nochmal drin ist, allerdings mit anderen Werten und jetzt weiss er nciht welche er nehmen soll. Wenn du ihm aber sagt mit welchen Tapen er arbeiten soll, sollte es gehen.


mfg
umbrasaxum
 
Hallo,
danke schonmal für die Antwort.
Allerdings hilft sie mir nicht weiter :(

Der Fehler tritt in der afxtempl.h auf. Und an der will ich nicht wirklich rumbasteln.
Die SMTP.h überschreibt memcpy nicht. Es wird auch nciht in der SMTP.cpp aufgerufen.

Es muss also doch am include liegen :(
Ich ruf übrigens in meinem Projekt die memcpy ebenfalls nciht auf.
Es wird also von mir an keiner Stelle ein Wert übergeben!
Oder hab ich dich jetzt falsch verstanden?
 
Hi,
ich hab den Fehler nun endlich weiter eingrenzen können.
Mein Projekt bindet auch die Boost - Bibliothek ein. Wenn ich die weglasse, funktioniert das Kompilieren.
Allerdings brauch ich diese, da ich innerhalb einer Zeichenkette nach einer bestimmten Zeichenkombination suchen muss.
Ich muss eine sechs- bis achtstellige Zahl suchen, auf die ein Bindestrich folgt und anschließend nochmal eine zwei - oder dreistellige Zahl. Hab ehrlich gesagt keinen Plan, wie ich das anders realisieren kann.
So konnte ich halt nur folgende Zeile angeben

boost::regex _e("([0-9]{6,8})-([0-9]{1,3})");

und dann suchen.
Gibt es eine Alternative zu Boost

DANKE nochmal!
 
Hi.

Ich hab mal bei Google gesucht, und es scheint, das es ausreicht folgende Zeilen in den Code einzufügen bevor du afxtempl.h einbindest:
Code:
#define memcpy ::memcpy
#define memset ::memset


Gruß
 
Zurück