|
Hello,
I have an application that has a simple dialog with CListCtrl windows.
I have an Microsoft IME editor for Japanese with suitable Font enabled on my
machine.
But I want to application is supposed to display Chinese and Japanese each column in one CListCtrl.
for example first column language setting is Japenese, second column language setting is Chinese in CListCtrl.
Can anyone point me as to how I can achieve this ?
Thank You
|
|
|
|
|
Hi!
I have an application that starts a service application when it starts. This works when I start the application in an admin account, but if I run the program in a non-admin account I'am not able to start the service with the method StartService().
Here is my code:
void startmyService()
{
SC_HANDLE myManager;
SC_HANDLE myService;
myManager = OpenSCManager(NULL, NULL, SC_MANAGER_ALL_ACCESS);
myService = OpenService(myManager, "myService app", SERVICE_ALL_ACCESS);
if (myService == NULL)
{
return false;
}
if (!StartService(myService,0,NULL))
{
return false;
}
CloseServiceHandle(myService);
return true;
}
|
|
|
|
|
Your account does not have the privilege to start a service.
Impersonate an account that has the privilege and then RevertToSelf when done.
|
|
|
|
|
I need following information from Windows Machine.
1.Total CPU utilization
2.Total CPU user time
3.Total CPU sys time
4.Total CPU idle time
5.CPU load average (1, 5, 15min)
6.CPU run queue length
7.# of Active processes
8.Interrupts per second
9.System calls per second
10.CPU utilization of the custom process 1, 2, …
Which API can use to get the above info? Pl Give an Example.
Advance Thanks,
|
|
|
|
|
Well, maybe most of information that you need can be retrieved from the performance counters.
I published a sample How to get CPU usage by performance counters (without PDH)
. In that projects i wrote a general class that gets counters by object index,counter index and instance name.
Look at my code how i use that class and try to use it for retrieving more information.
|
|
|
|
|
hiii....
this is very interesting......wht i am trying to do is to RECREATE a window (it can b any apllication window) by grabbing all its properties n properties of all its childs..... on another REMOTE TERMINAL......
but i hav had limited success till now....means i am able to recreate only some of the windows.......i hav tried creating the NOTEPAD and CALCULATOR windows but hav failed in the process...
i am using the CreateWindowEx function do it...and other callback functions to obtain the properties...
can neone plzzz suggest any reasons why this is not possible??? or is it?
i need some urgent replies for this....any help is welcome...
regards,
kedar.
|
|
|
|
|
Hi,
I am attaching a piece of code here:
CTest is derived from CWnd.
LRESULT CTest::WndProc(HWND hWnd, UINT message,WPARAM wParam, LPARAM lParam)
{
CWnd *pWnd;
// create a new instance if the window handle is not yet associated
// with a CTest object
if ((pWnd = CWnd::FromHandlePermanent(hWnd)) == NULL)
{
pWnd = new CTest();
pWnd->Attach(hWnd);
}
// otherwise, let default message processor handle it
return ::AfxCallWndProc(pWnd, hWnd, message, wParam, lParam);
}
The WndProc() gets invoked for the first time for the WM_NCCREATE message.
The control passes inside the if block and a new object is instantiated. The CWnd::Attach() puts the (CWnd,HWND) into the CHandleMap pMap.
For the consecutive messages the FromHandlePermanent() returns the valid CWnd pointer from the CHandleMap.
After a sequences of messages, for a particular WM_PAINT message, the FromHandlePermanent() returns NULL!!! For no reason!!! The CWnd::Detach() was never called nor the CHandleMap::RemoveHandle(). Then how is it that the entry got deleted from the CHandleMap when the hWnd is still the same and valid???
Can someone solve my problem???
Thanks,
Reji
|
|
|
|
|
Hello,
Can any 1 pls tell me how to convert WMV to MPEG2 using graphedit so that i can use directshow in my application to do the conversion. Cud someone please tell me where can i find the encoder codec for mpeg2.
Any web link also will be helpful.
Thanks in advance!
John.
|
|
|
|
|
I need to write a application that has to launch any process and track all the Socket messages sent by the child process.
How to do that. Is there any socket function available that can track all the child process outgoing socket messages.
|
|
|
|
|
Good people,
If anybody seen any links on other good people’s experience on migrating large VC++ 6.0 projects to .NET, could you please send the links to me.
Thanks,
Serge
|
|
|
|
|
It comes down to how good your programming team is. A lot of stuff that compiled in VC6 does not compile in VC7, because of improvements to the standard adherance. So, if the project is written in good C++, then fine. If the programmers leaned on old VC hacks, then you could have some work in front of you.
Christian
I have several lifelong friends that are New Yorkers but I have always gravitated toward the weirdo's. - Richard Stringer
|
|
|
|
|
Hi Christian,
Considering changes to the compiler, I completely agree with your comment; but there’s more than just a compiler: changes in MFC between version 6 and version 7. Just a couple of them to give you an idea on the amount of work when migrating large MFC based projects from VC6 to VC7.
1. Changes in CFile class interface:
virtual DWORD CFile::GetLength( ) const; // MFC6 (Visual C++ 6.0)
virtual ULONGLONG CFile::GetLength( ) const; // MFC7 (.NET 2003)
so that compiling code like this:
CFile f;
DWORD dwLength = f.GetLength();
will now produce compiler warnings on loosing data; and certainly, this kind of warnings can’t be ignored. Add millions user-defined specialisations of the CFile class in a large MFC based project to complete the picture (actually, it is a good example of when inheritance bites and aggregations should be used instead);
2. Changes in CTime class: in the interface (similar to the 1.) and in size: size of objects of the CTime class is now 8 bytes, instead of 4 bytes; our software serialises objects of the CTime class through sockets; therefore the backward compatibility issue. The change in the CTime class breaks backward compatibility with the legacy systems that can’t be upgraded to run applications built under VC7 with MFC 7; even our non-legacy systems can’t be upgraded in one go, so this backward compatibility issue will exist for a transition period of time.
Also consider the backward compatibility requirement (support for both VC6 and VC7 for a transition period of time) so source code now looks like this:
CFile f;
#if _MFC_VER >= 0x0700 // represents MFC version 7 and later
ULONGLONG llLength = f.GetLength();
#else
DWORD dwLength = f.GetLength();
#endif
and requirements for unit, build, factory etc. testing for two versions - so you’ve got the picture…
Serge
|
|
|
|
|
Oh, OK. I use standard library components where-ever possible, I don't use anything like CArray, or CFile. As a result, I've not been exposed to these sort of problems. I've moved a bit of code from VC6 to VC7, and I only had one problem, and I knew beforehand I would. I once used an iterator as a pointer, which was dumb, but I felt petulant about dereferencing an iterator and then getting the returned item's address, as in &(*it); But you're obviously more exposed to Microsoft changes between versions. I wish you luck
Christian
I have several lifelong friends that are New Yorkers but I have always gravitated toward the weirdo's. - Richard Stringer
|
|
|
|
|
|
Hi,
Is it possible to wrap a dll A into another dll B, so I just need to distribute the dll B, but not the dll A? And how are there differences in
the following cases ?
1. the dll A is written in VC++, and the wrapping dll B is written in C#
2. the dll A is written in C#, and the wrapping dll B is written in C#
My concern is that I don't want others to get the original dll B when I distribute
the program. So can other people reverse engineer the wrapped dll and get the original dll out ?
|
|
|
|
|
You can make dll A a binary resource of dll B, then at run-time, write the dll A resource out to the file system and load it dynamically. I'm not sure how you load a dll dynamically in C#, but in C++ you can use LoadLibrary. And no, this won't prevent anyone from reverse engineering your dll's. As far as I can tell, it's next to impossible to keep people from reverse engineering your dll's.
|
|
|
|
|
can anyone show me on how to to create a bitmap using C, particularlly a barcode....
|
|
|
|
|
|
Good people,
Does anybody know why the following code, compiled under .NET 2003, prints junk instead of the expected “Hello, World!”?.
Thanks,
Serge
#include "stdafx.h"
int main()
{
COleVariant v;
v.SetString("Hello, World!", VT_BSTRT);
CString s;
// why 's = v.pcVal' works, but 's = v' does not?
s = v;
std::cout << s << std::endl;
return 0;
}
|
|
|
|
|
Only use VT_BSTRT if you are using an ANSI string in a UNICODE build, else use VT_BSTR.
v.SetString("Hello, World!", VT_BSTR);
When you output a CString via std::cout you have to cast your CString variable to an LPCTSTR
std::cout << (LPCTSTR)s << std::endl;
At least that is what I have to do in .NET 2002.
"You're obviously a superstar." - Christian Graus about me - 12 Feb '03
"Obviously ??? You're definitely a superstar!!!" mYkel - 21 Jun '04
Within you lies the power for good - Use it! Honoured as one of The Most Helpful Members of 2004
|
|
|
|
|
PJ, thanks, it works, but it does not make any sense…
1) check out what MSDN says on this:
A DAO recordset in a non-UNICODE build expects strings to be ANSI. Thus, for DAO functions that use COleVariant objects, if you are not creating a UNICODE recordset, you must use the COleVariant::COleVariant( lpszSrc, vtSrc ) form of constructor with vtSrc set to VT_BSTRT (ANSI) or use SetString with vtSrc set to VT_BSTRT to make ANSI strings. For example, the CDaoRecordset functions CDaoRecordset::Seek and CDaoRecordset::SetFieldValue use COleVariant objects as parameters. These objects must be ANSI if the DAO recordset is not UNICODE.
2) It breaks backward compatibility with MFC6, namely this one will print just one letter “H”:
#include "stdafx.h"
int main()
{
COleVariant v;
v.SetString("Hello, World!", VT_BSTR);
CString s;
// why 's = v.pcVal' works, but 's = v' does not?
s = v.pcVal;
std::cout << (LPCSTR)s << std::endl;
return 0;
}
so the backward compatible version of a non-Unicode build should be like this:
#include "stdafx.h"
int main()
{
COleVariant v;
v.SetString("Hello, World!",
#if _MFC_VER >= 0x0700 // represents MFC version 7 and later
VT_BSTR);
#else
VT_BSTRT);
#endif
CString s;
// why 's = v.pcVal' works, but 's = v' does not?
#if _MFC_VER >= 0x0700 // represents MFC version 7 and later
s = v;
#else
s = v.pcVal;
#endif
std::cout << (LPCSTR)s << std::endl;
return 0;
}
but does it make any sense?
Thanks,
Serge
|
|
|
|
|
There are two things to remember, one: MSDN is not always correct, two: not everything is backwards compatible.
Serge Krynine wrote:
#if _MFC_VER >= 0x0700 // represents MFC version 7 and later
VT_BSTR);
#else
VT_BSTRT);
#endif
There are obviously differences between COleVariant v6 and v7 as they act differently. Just right click on VT_BSTRT in both VC6 and VC7 and you will be brought to different definitions.
Serge Krynine wrote:
CString s;
// why 's = v.pcVal' works, but 's = v' does not?
#if _MFC_VER >= 0x0700 // represents MFC version 7 and later
s = v;
#else
s = v.pcVal;
#endif
CString in VC6 does not have an operator = const VARIANT& and VC7 does.
Try different settings, and use the debugger's variable watch window to see what is happening.
"You're obviously a superstar." - Christian Graus about me - 12 Feb '03
"Obviously ??? You're definitely a superstar!!!" mYkel - 21 Jun '04
Within you lies the power for good - Use it! Honoured as one of The Most Helpful Members of 2004
|
|
|
|
|
Hi
I got an application with a lenghtly task in managed C++. I wish to disable the form to prevent user from doing anything and have a waitcursor (hourglass) when the task is running.
this->Cursor = Cursors::WaitCursor;
this->Enabled = false;
the task
this->Enabled = true;
this->Cursor = Cursors::Default;
The problem is when I disable the form, the WaitCursor disapear. If I remove the call to restore the cursor, the WaitCursor appear with the form enable.
Thanks for your help to resolve my problem
SL
|
|
|
|
|
Hi
Use the following code
void CTestDlg::OnLongProcess()
{
CWaitCursor wait;
.
.
.
Sleep(4000);
//Some Long Process
.
.
.
.
wait.Restore(); //Restore the Wait cursor
//Continue process
}
This may help you
Sujan
|
|
|
|
|
Hi all,
I know this could be a very easy question to others.. but to the people like me will love to read this.
I have one dll to use in my project. So I went to project, add reference, on the com tab, I browsed the dll from my local drive.
Then, I'm stack.. I dont' know how to use it.
I already add the myDll.dll to my project as a com reference..
but I have no idea how to call myDll.dll memeber properties and funcations.
I tried to declare like
myDll mydll;
but I got error.
Pleaseplease help me out.
Thanks
|
|
|
|
|