Re: Service & database.
"Eitan M" <no_spam_please@nospam_please.com> wrote in message
news:O9yikuiEHHA.1196@TK2MSFTNGP02.phx.gbl...
I have created a service in VC 6.0.
It is a *.c file (not *.cpp).
1) Does it metter if I program *.c file or *.cpp file for creating a
service ?
You can write a service in any language that can call functions of the Win32
API.
2) I should use database,
on one hand in *.c the following cannot be compiled (no includes)/
#import "msado15.dll" \
no_namespace \
rename( "EOF", "adoEOF" )
The #import directive is a MS extension to C++ (not C). It reads the type
library of a COM object and from it creates wrappers that allow the
developer to access the COM object as if it were an instance of a C++ class.
I have seen many examples, that use :
_ConnectionPtr m_pConn;
_RecordsetPtr m_pRecordSet;
_bstr_t bstrQuery;
_variant_t isAffected;
::CoInitialize(NULL);
hr = m_pConn.CreateInstance (__uuidof(Connection));
m_pConn->ConnectionString = "...";
m_pConn->Open(m_pConn->ConnectionString, "", "", adModeUnknown);
bstrQuery = "select * from ...";
...
::CoUninitialize();
The snippet uses the C++ support for COM.
(I hope this is the modern, and best popular method to uses database).
There are many ways to go and best is subjective.
****************************
on the other hand in *.cpp the following cannot be compiled :
ReportEvent(hEventSource, // handle of event source
EVENTLOG_ERROR_TYPE, // event type
0, // event category
0, // event ID
NULL, // current user's SID
2, // strings in lpszStrings
0, // no bytes of raw data
lpszStrings, // array of error strings
NULL); // no raw data
Services, as here, typically report significant events to the event log.
(Just by the way, in order for that to work its often necessary to set some
registry keys and to put in place a "message DLL". )
None of us here is clairvoyant (at least I don't think so) so you'll need to
explain how the above fails. It's usually best to quote the full text of the
error message.
Regards,
Will