[DGD]Calling CPP Functions from an Extension
Michael J. Bacon
mj.bacon at gte.net
Wed Jan 17 15:37:10 CET 2001
Hello all! My apologies if this has been asked and answered in the past I
am relatively new to the list and still trying to figure out the best way to
go through the archive files in a logical manner.
Anyway, I've been playing around with dgd1.2's extension capabilities.
Very neat I must say. For convoluted reasons I find myself needing to call
C++ functions from an extension. I realize I will be unable to directly
access class objects or advanced C++ constructs from an extension, but I
have devised a few functions which, in theory, should act as a layer between
the C++ objects and methods and the procedural C calls any extension would
make. I wrote a simple extension to test this theory, and I'm glad I did,
because I can't get things to link.
I am trying to do this on WinNT using Visual C++ 6.0. I am trying to link
in a very simple CPP file which at the moment does nothing except declare a
string variable... It looks like this:
------
#define TESTHR(x) if FAILED(x) _com_issue_error(hr)
// Function declarations
int OpenX(void);
///////////////////////////////////////////////////////////
// //
// OpenX Function //
// //
///////////////////////////////////////////////////////////
int OpenX(void)
{
_bstr_t strCnn("Provider=sqloledb;Data Source=MyServer;"
"Initial Catalog=pubs;User Id=sa;Password=;");
return 0;
}
------
Compiles fine, but when I link I get the following errors:
Microsoft (R) Program Maintenance Utility Version 6.00.8168.0
Copyright (C) Microsoft Corp 1988-1998. All rights reserved.
No configuration specified. Defaulting to windgd - Win32 Debug.
link.exe @C:\WINDOWS\TEMP\nma00163.
nafxcwd.lib(afxmem.obj) : error LNK2005: "void * __cdecl operator
new(unsigned i
nt)" (??2 at YAPAXI@Z) already defined in LIBCMTD.lib(new.obj)
nafxcwd.lib(afxmem.obj) : error LNK2005: "void __cdecl operator delete(void
*)"
(??3 at YAXPAX@Z) already defined in LIBCMTD.lib(dbgdel.obj)
.\Debug/dgd.exe : fatal error LNK1169: one or more multiply defined symbols
foun
d
NMAKE : fatal error U1077: 'D:\PROGRA~1\MICROS~1\VC98\BIN\link.exe' : return
cod
e '0x491'
Stop.
Any ideas what I am doing wrong? I haven't modified windgd.mak at all
except to add the cpp file to the dependency and to link it in...
Thanks in advance for any advice...
Michael.
List config page: http://list.imaginary.com/mailman/listinfo/dgd
More information about the DGD
mailing list