|
There are two approaches; one, give users TCB privilege (ugh!!) so they can run the app and it can impersonate a user who has access, Not a good idea, or second, have a service running with no GUI which runs as a user who has access, and have your app talk the the service. It has permission, so it can write, user doesn't need permission.
You'd need to use something like TCP/IP or Named Pipe for communication, I guess.
Steve S
|
|
|
|
|
Any problems with that in VS 2003? Some of my colleages have hinted I might have to recompile the dlls to get VS2003 compatible libs? Sounds odd to me. If so.. what has changed and why?
|
|
|
|
|
how do you get the 3d inner border style of of the CMainFrame window to disappear?
I don't want my child view to look sunken into the frame. I tried &= ~WS_ with several styles on OnCreate, but nothing has worked so far.
tried all the
lpCreateStruct->dwExStyle &= ~WS_
plus I tried the
lpCreateStruct->style &= ~WS_
|
|
|
|
|
|
|
Hi, I need to get list of databases on server thru ODBC.
I can do it by native query for specific database server,
but I need to do that by ODBC function, to work on any server.
I can get list of tables thru SQLTables function, but how can
I get a list of databases?
Is there a way to do that?
|
|
|
|
|
Below is a code snippet that will help demonstrate how to get the list of catalogs for a given DSN and load them into a combo box:
CComboBox *pCB = (CComboBox *)GetDlgItem(IDC_CODEGENTBL_DB);
pCB->ResetContent();
DBConnection *pDBConn = &(((CodeGenOpts *)GetParent())->m_oDBConn);
DBStatement oStmt(pDBConn);
oStmt.AllocStatement();
int iDBCount = 0;
CString cDBName;
SQLRETURN iResult = SQLTables(oStmt.GetStmtHdl(),
(unsigned char *)"%", 1,
(unsigned char *)"",0,
(unsigned char *)"",0,
(unsigned char *)"",0);
if (iResult == SQL_SUCCESS || iResult == SQL_SUCCESS_WITH_INFO)
{
while (oStmt.FetchNext())
{
cDBName = oStmt.GetString(1);
if (!cDBName.IsEmpty())
{
pCB->AddString(cDBName);
iDBCount++;
}
}
oStmt.EndSQL();
}
onwards and upwards...
|
|
|
|
|
Hi,
I have a class that is exported by using dllexport. Now, I wish to use the methods of the class. If I use dllimport, I have to include the .h files and add all the .lib files to start using the methods of the exported class. Now, can I achieve the same using Loadlibrary()? If yes, how can I do it and is it a better option to use Loadlibrary()? Any problems that you foresee with this? Please suggest.
thanks.
|
|
|
|
|
Radha Nair wrote:
If yes, how can I do it and is it a better option to use Loadlibrary()?
I have not seen any examples of doing this with C++ classes. So I'm thinking that no you can't do it. I'm sure someone will try to proove me wrong, though In the case of the first method of including the .h and .lib files, the compiler and linker will be doing 'things' that won't get done when you use the second method. You can probably get the second method to work, if you know all the 'things' the compiler and linker do for you and then emulate that some how in code that you incorporate with your LoadLibrary calls. Can it be done, maybe, but I haven't seen an example so I don't think it can.
One option is to write some plain 'C' functions that provide an interface to the C++ class, and use these instead of the C++ methods.
Chris Meech
"what makes CP different is the people and sense of community, things people will only discover if they join up and join in." Christian Graus Nov 14, 2002.
Oh and for those that ask programming questions in the lounge. Seek the truth here[^].
|
|
|
|
|
Chris Meech wrote:
I'm sure someone will try to proove me wrong, though
Not trying to prove anything. But maybe something like this can be done?
class ExportedClass
{
public:
ExportedClass();
~ExportedClass
void Abc();
};
ExportedClass* GetExportedClass()
{
return new ExportedClass();
}
Now in the main exe, do something like :-
GETEXPORTEDCLASS func = GetProcAddress(...,"GetExportedClass");
ExportedClass* pec = (func)();
pec->Abc();
This is untested code and it might not work for various reasons (member name mangling for one) but it's worth a try. If this is a stupid idea, please forgive my relative ignorance in such matters
Nish
Extending MFC Applications with the .NET Framework [NW] (My book with Tom)
Summer Love and Some more Cricket [NW] (My first novel)
Shog's review of SLASMC [NW]
Come with me if you want to live
|
|
|
|
|
Thanks, Nish. That's what I was sugggesting as an alternative. Except that I think you also have to have an exported function to access the Abc() function. In your example the Abc method wont be exported. And not to mention that there are a whole lot of issues with new/delete, memory leaks, name mangling and such. It can get quite ugly, to say the least.
Another option to consider as well, is to use COM to 'export' the class. But that's for another day.
Chris Meech
"what makes CP different is the people and sense of community, things people will only discover if they join up and join in." Christian Graus Nov 14, 2002.
Oh and for those that ask programming questions in the lounge. Seek the truth here[^].
|
|
|
|
|
Really appreciate all the help. thanks both you guys.
Nishant, I understood your method. It's real clean. But the problem is that Iam not developing the exported class. It has already been developed and closed. They have just used dllexport to export it. So, considering the situation, do I have any choice other than going for implicit linking?
Any other method of explicit linking without touching the header/cpp file of the class that is being exported?
Sorry if Iam asking for too much!
|
|
|
|
|
DelayLoad...
"...Ability to type is not enough to become a Programmer. Unless you type in VB. But then again you have to type really fast..."
Me
|
|
|
|
|
The trouble with using LoadLibrary with classes is the name mangling done by the compiler/linker make it very difficult to access members of the class. I believe that it is generally easier to use the implicit linking method for classes.
An alternative (and one I have used) is to make a layer of C functions to access the class. You can write an initialize function to construct, a terminate function to destroy, and then pass in a pointer to the object to functions that access the methods of the object. This takes a little work but is easy to implement.
The Ten Commandments For C Programmers
|
|
|
|
|
Thanks all you guys. Every line was highly informative and helped me a lot.
Thanks again,
Radha Nair
|
|
|
|
|
I've build a small MFC ActiveX control that needs a context menu. The context menu appears on the however none of the menu items are active. How do I get the activeX control to manage them?
ed
|
|
|
|
|
I want to make the user of the program be able to type in a number and let the timer count to the number but I keep on getting the wrong output. I put a int and string variable.
if(m_iCount == m_sCountTo) Help
[It is possible to represent everything in this universe by using 0 and 1]
I'm going to live forever or die trying.
|
|
|
|
|
You can't compare an int to a string (unless the appropriate overloaded operators have been implemented).
|
|
|
|
|
if(m_iCount == atoi(m_sCountTo)) ...
|
|
|
|
|
THANK YOU!!!! IT WORKS!!!!
[It is possible to represent everything in this universe by using 0 and 1]
I'm going to live forever or die trying.
|
|
|
|
|
I suggest you keep the counter and the target value in integer format. This way you can compare them easily and perform a lot of other operations like increment easily.
You’ll need to convert from string to int, when the user enters the value. For display purposes you can either format the integer into a nice looking string, or display it directly.
Lorenz Prem
Microsoft Corporation
|
|
|
|
|
homework ?
There's lot of things wrong with this piece of code.
for a start, use a compiler and find the obvious ones ... and continue from there.
Maximilien Lincourt
"Never underestimate the bandwidth of a station wagon filled with backup tapes." ("Computer Networks" by Andrew S Tannenbaum )
|
|
|
|
|
lano1 wrote:
d = 20.4;
'd' is undeclared, unless it's a global.
lano1 wrote:
if(*a = 0)
*a += 1;
This is nonsense. What are you trying to do?
lano1 wrote:
but the pointers are confusing
'b' is the only pointer that is being used. To reference the value being pointed to by 'b', use *b .
If an 'if' statement is supposed to execute more than one statement upon TRUE evaluation of the condition, curly braces MUST be used. Otherwise, the second statement and beyond are executed unconditionally. For example:
if (condition)
do one thing
do another thing
do some more
What was actually meant was:
if (condition)
{
do one thing
do another thing
do some more
}
lano1 wrote:
And also should void be removed becuase the function is supposed to return a value.
Void functions cannot return values.
|
|
|
|
|
Hi,
I have an MDI application, and the window title is shown as title - [filename] when a child is maximised. I want to be able to change this display to look like:
filename - title
MFC does this, but I can't seem to find how to do it in plain WinAPI or WTL. I've tried overriding WM_GETTEXT but I never get that message?!
Any ideas?
thanks,
Simon.
--
Simon Steele
Programmers Notepad - http://www.pnotepad.org/
|
|
|
|
|
Hi
in your view use code like this
<br />
GetDocument()->SetTitle(strTitel);<br />
where strTitel is a CString variable containing the text to display. Of course, you also can set the title directly.
G. Steudtel
|
|
|
|