|
I have a pretty simple logger COM component that I am building right now that simply logs entries to a text file when the "LogEntry" call is made. However currently it only logs to one file and that file is declared at construction.
I am now trying to add both a "public" and "private" functionality.
First, I need to check a conditional that the "LogEntry" is either public or private. If it is public, I do everything the same as I do now, if it is private, I need to log it to it's private file.
I am trying to find a way to dynamically enter into a file.
I have tried this already:
I declared a std::map<string, ofstream=""> object. The string is the FileName.
I decided to use a map to make sure I open the file the first time I log to the private file. I run a .find on the string to see if the file is there.
If the file is there, I log to it. If it is not there, I open the file and log to it, leaving it open for future logging.
None of this is working for me.
Since there will be many different clients using this logger component, I need a way to determine which file to log to as they will all have separate files. Then log to that file. But since I don't know how many clients I will have, I need this to be dynamic.
Any help will be appreciated.
Thank you.
|
|
|
|
|
If there is a separate instance of your COM object for each client, then make the handle to the log file a private member of each COM object instance. You will then log to the correct file for each client.
If you also open the log file for exclusive write access, then no other client will be able to open the same log file for writing.
Your public file's sharing should be modified to allow multiple clients to open filehandles and write to it. You should protect the writing process with a mutex or some similar synchronization object so that they don't all actually ever write to it at the same time.
|
|
|
|
|
Also , what is the Apartment Model ?
perhaps you can change that and then try using the handle to log file as private member.
Regards
Tarundeep Singh Kalra
Blue Pill or Red Pill........??
|
|
|
|
|
My COM object is a singleton. Only one instance. The Public writing is fine as I already had that working properly.
The Private is the functionality I am adding.
Basically, if BOB calls LogEntry(private) then it needs to open BOB.txt on the first instance and log to BOB.txt every time after that.
If TOM calls LogEntry(private) then it needs to open TOM.txt on the first instance and log to TOM.txt every time after that.
...and so on.
|
|
|
|
|
Can someone point me to articles that would describe how to enumerate devices on a LAN using winsock api? I want to search and display printer devices information.
Thanks
|
|
|
|
|
try WNetOpenEnum see in MSDN for details
Tarundeep Singh Kalra
Blue Pill or Red Pill........??
|
|
|
|
|
|
Well I thought the WNetEnumResource was what I wanted but not quite. I need some way to get the IP addresses of printer devices. Any Help?
Thanks again
|
|
|
|
|
hello, i was trying to automate IE's save as function...i would like to add a item to right click context menu of IE, which is save image, which then automatically save the image into pre-defined folder...
anyone can point me a direction where i should look into in order to complete this??
thx you so much....
|
|
|
|
|
try IE Helper func, and trap the appropriate event and override it with yours
REgards
Tarundeep Singh Kalra
Blue Pill or Red Pill........??
|
|
|
|
|
i want to get data from a port by using udp socket in VC ++ another application also recive same udp data(which is broadcast on network from that particular port) how can my application share same data ? any idea
|
|
|
|
|
I have a drop down menu on one of my toolbar buttons. I am having problem with checking menu items. If I use CCmdUI::SetCheck method, there is no problem, but I want to do this in a different way.
Why does this code give error?
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CMDIFrameWnd::OnCreate(lpCreateStruct) == -1)
return -1;
...
...
menu_tb2_btn1.LoadMenu(IDR_MENU_TOOLBAR2_BUTTON1);
ASSERT(menu_tb2_btn1);
pPopup = menu_tb2_btn1.GetSubMenu(0);
...
...
return 0;
}
void CMainFrame::OnTb2btn1Item1()
{
// TODO: Add your command handler code here
...
...
pPopup->CheckMenuRadioItem(0,3,1,MF_BYPOSITION);
...
...
}
|
|
|
|
|
Kapgan wrote:
Why does this code give error?
Exactly what error does it give? Is it a compiler error? A linker error? A run-time error? If the latter, what steps are you taking that leads up to this point?
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow
|
|
|
|
|
It's a run-time error. It says debug assertion failure. I defined a pPopup named object and tried to make it hold the drop down menu, so that I can easily have access to other functions. But unfortunately I couldn't do this.
|
|
|
|
|
Kapgan wrote:
It says debug assertion failure.
Which line of which file?
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow
|
|
|
|
|
|
As the assertion is related to a CString object, the code snippet you've provided is of no help. You'll need to locate the CString object in question. Given that m_pchData is in error, my first guess is that it is a heap-based object.
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow
|
|
|
|
|
how can i use a hotkey in a tabctrl (in first script or first tab) while runnig a dailog base application using tabs ??
|
|
|
|
|
hi
How i can get a size of RAM and a speed of prossesor by C++ (borland) ?
|
|
|
|
|
|
I HAVE DOWNLOADED AN EXE FILE USING URLOPEN().NOW I WANT TO SET-UP THAT EXE FILE WITHOUT SHOWING ME THE SET UP WINDOW,ASKING FOR PARAMETRS TO SET-UP.THE INSTALLATION SHOULDNOT ASK PARAMETERS FOR INSTALLATION FOR ANY EXE FILE I DOWNLOAD.
IS THERE ANYWAY IT AUTOMATICALLY ACCEPT DEFAULT PARMETERS.
|
|
|
|
|
sunit5 wrote:
NOW I WANT TO SET-UP THAT EXE FILE WITHOUT SHOWING ME THE SET UP WINDOW
Please clarify. Are you wanting to run the .exe file using something like CreateProcess() or ShellExecute() ? Unless the .exe file that you are wanting to run accepts command-line parameters, there is nothing you can do.
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow
|
|
|
|
|
thanks for ur suggestion it helped me.if the exe file accepts command-line parameters then only i can do silient installation.otherwise in windows i have to know what parameters does that .exe will accept.pls pour in ur suggestions if i m wrong.
|
|
|
|
|
you can make your exe file to go for silent install , it depend how you make your exe file.
and also pls dont use caps for messages.
Regards
Tarundeep Singh Kalra
************************
www.tarunsadhana.com
************************
All men die. Not all men really live”. - “Braveheart”, 1995
|
|
|
|
|
Hi, I'm developing on WinCE, ppc2003
these are dialog's datas from .rc file:
IDD_LAMINERKIA_DIALOG DIALOGEX 12, 11, 200, 300
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION
EXSTYLE WS_EX_CLIENTEDGE | WS_EX_STATICEDGE
FONT 8, "MS Sans Serif"
BEGIN
DEFPUSHBUTTON "OK",IDOK,0,23,240,30
LTEXT "Stat",
IDC_STATIC,0,70,233,100,0,WS_EX_CLIENTEDGE
END
well.. how do I retrieve Dialog's information regarding its size and position.. I mean: how do I get the values underlined 12, 11, 200, 300?
[Note: GetWindowRect() or GetLocalRect() both give me values regarding the screen position.. and I need the exact values of the .rc file!]
Any help is welcome.
|
|
|
|