Funktionen aus C-DLL's aufrufen: Character Set der DLLs mit DAO Zugriff

18/08/2009 - 14:17 von Karo Schweizer | Report spam
hallo NG.

ich habe dll's, deren funktionen aus ms access aufgerufen werden. diese
funktionen greifen über DAO auf mdb's zu. nun musste ich folgendes
feststellen:

eine dll, die mit character set 'not set' oder 'multi byte (MBCS)' erstellt
ist, die kann - wenn sie aus ms access 2007 aufgerufen wird, zugriffe über
DaoRecordset nicht erfolgreich ausführen (beispiel:
- rsData ist ein CDaoRecordset.
- rsData.GetFieldValue("FeldName") bewirkt eine Exception mit Fehler 3265
(Element in dieser Auflistung nicht gefunden.).

wenn ich dieselbe funktion aus einem C-testprogramm aufrufe, oder aus ms
access 2003 oder 2000: keine probleme.

ist die dll mit character set 'unicode' erstellt, so funktioniert alles.

gibt's zu diesem 'phànomen' (oder ist's ein fehler?) irgend einen link eine
doku?

ich habe - noch nicht im wissen aller testresultate - gestern eine frage in
microsoft.public.de.vc gestellt, die aber nicht genau in diese richtung
geht - habe auch keine antwort erhalten, die mit 'weiterkommen' làsst.

gruss
karo
 

Lesen sie die antworten

#1 Mark Doerbandt
18/08/2009 - 17:52 | Warnen spam
Hallo, Karo,

Karo Schweizer:

ich habe dll's, deren funktionen aus ms access aufgerufen werden. diese
funktionen greifen über DAO auf mdb's zu.



mal ganz naiv gefragt: warum machst Du das dann nicht direkt von
Access aus?

eine dll, die mit character set 'not set' oder 'multi byte (MBCS)' erstellt
ist, die kann - wenn sie aus ms access 2007 aufgerufen wird, zugriffe über
DaoRecordset nicht erfolgreich ausführen (beispiel:
- rsData ist ein CDaoRecordset.
- rsData.GetFieldValue("FeldName") bewirkt eine Exception mit Fehler 3265
(Element in dieser Auflistung nicht gefunden.).

wenn ich dieselbe funktion aus einem C-testprogramm aufrufe, oder aus ms
access 2003 oder 2000: keine probleme.

ist die dll mit character set 'unicode' erstellt, so funktioniert alles.



Vielleicht kannst Du ein kleines Beispiel zum Download stellen. So
ganz ohne Code ist es schwer, dazu was zu sagen. zumindest für mich.

Gruss - Mark

Informationen fuer Neulinge in den Access-Newsgroups unter
http://www.doerbandt.de/Access/Newbie.htm

Bitte keine eMails auf Newsgroup-Beitràge senden.

Ähnliche fragen