|
Hello everyone,
I found an articles in msdn which is "Receiving SMS Messages Inside a Managed Application". I download the sample code and run it.This project contains two separte projects "mapirule" and "CaptureSMS". Mapirule was implemented by using embedded Visual C++ 4.0 and CaptureSMS contains managed code only which was implemented by using Visual Studio.NET 2003
When I built mapirule.dll in embedded C++4.0, the error "downloaded file failed" occurred. When I tested the sample code on an emulator and clicked Start IMailRuleClient". Error message "The function is not defined" ("registerServer" function). This function is defined in mapirule. How come mapirull.dll can't be loaded? Is there anyone who can give me any suggestion.It's urgent. Thank you veryyyy much.
Co
|
|
|
|
|
Hi,
I'm having trouble debugging an application. If I simply run it, it works, but then when I try to run it through the debugger I get "First-chance exception ... (NTDLL.dll): 0xC0000008: Invalid Handle" when I try to step over a function belonging to the COM object.
CoInitialize() and CoCreateInstance() do not return errors. One last thing I should not is the code is inside a thread.
Any ideas?
Thanks.
|
|
|
|
|
Budric B. wrote:
One last thing I should not is the code is inside a thread.
Here's what the documentation says:
'You need to initialize the COM library on a thread before you call any of the library functions except CoGetMalloc'
So, did you invoke CoInitialize() in another thread?
"After all it's just text at the end of the day. - Colin Davies
"For example, when a VB programmer comes to my house, they may say 'does your pool need cleaning, sir ?' " - Christian Graus
|
|
|
|
|
Yes, I call that from the same thread. In fact now I have moved all the related code into a debug function that I can call on some keydown event. The problem still occurs. When I try to step over a function I get an exception and can't debug the rest of the code (which doesn't work). What's even more frustrating is that the sample project that comes with the package where I copied the code from works and I can't see any differences.
From some searching on google that exception is thrown when someone tries to close a handle that has already been closed or something similar.
Any suggestion on how I can debug the problem?
|
|
|
|
|
Budric B. wrote:
What's even more frustrating is that the sample project that comes with the package where I copied the code from works and I can't see any differences.
Weird, if the function isn't too large, you could post it, and I could give it a review.
"After all it's just text at the end of the day. - Colin Davies
"For example, when a VB programmer comes to my house, they may say 'does your pool need cleaning, sir ?' " - Christian Graus
|
|
|
|
|
It's simple calls to the library
<br />
void CChildView::OnDebug() <br />
{<br />
CoInitialize(NULL);<br />
CoCreateInstance(CLSID_MotionTracker, NULL, CLSCTX_SERVER, IID_IMotionTracker, (void**) &pMT);<br />
<br />
pMT->MT_SetCalibratedOutput(m_bLogCalibratedData);<br />
pMT->MT_SetFilterSettings(1,1,1);<br />
pMT->MT_SetOutputMode(1);<br />
pMT->MT_SetCOMPort(nPortNumber);<br />
<br />
try<br />
{<br />
pMT->MT_StartProcess();
}<br />
catch(...)
{<br />
AfxMessageBox("error!?!?!");<br />
}<br />
GetData();
CoUninitialize();<br />
pMT->Release();<br />
}<br />
|
|
|
|
|
Hm, I'm not sure at all, but my guess is that MT_StartProcess succeeds in starting a process or a thread, whatever of the two, and in that thread or process, an unhandled exception is thrown.
If it's another thread of your process, then it will make the process exit. If it really IS another process, then I'm lost
If an exception is thrown in another thread or process, you will not be able to catch it in the 'mother' thread. Think about it, how would that be possible?
"After all it's just text at the end of the day. - Colin Davies
"For example, when a VB programmer comes to my house, they may say 'does your pool need cleaning, sir ?' " - Christian Graus
|
|
|
|
|
I have a MDI apllication with modeless property sheet. I want to create and display edit boxes on one of the property pages. They must be created on WM_LBUTTONUP event in my View-derived class..
So please, tell me, what's wrong in here:
class CInput : public CPropertyPage<br />
{...<br />
void AddEditBox();<br />
...<br />
}<br />
<br />
<br />
void CInput::AddEditBox()<br />
{<br />
<br />
CRect rect( x1, y1, x2, y2);
int ID = 4000;<br />
<br />
CEdit *p = new CEdit;<br />
<br />
p->Create( WS_CHILD | WS_VISIBLE | WS_TABSTOP |<br />
ES_AUTOHSCROLL | WS_BORDER | WS_DISABLED, rect, this, ID );<br />
<br />
}
Now, I want to call this function from my View class (on WM_LBUTTONUP event)
void CMyView::OnLButtonUp(UINT nFlags, CPoint point) <br />
{<br />
...<br />
CInput inp;<br />
...<br />
inp.AddInputEdit();<br />
...<br />
}
but Create function (in the AddInputEdit) returns 0..? why? what I did wrong..?
|
|
|
|
|
I am going to guess that the CPropertyPage you are trying to create the edit control on does not exist. try this:
void CInput::AddEditBox()
{
ASSERT(IsWindow(m_hWnd));
... What happens now???
"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
|
|
|
|
|
But how can it be..? I create my property sheet (with both property pages..!) in CMainFrame::OnCreate(..).
Anyway, it tels me "debug assertion faild" when I'm trying to click..and what should I do..?
|
|
|
|
|
What you are doing in your OnLButtonUp method is creating a new instance of your CInput class. What you have to do is get access to the one you created in CMainFrame::OnCreate and do the operations on that one.
"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
|
|
|
|
|
Thank You very much for your help..
but I'm very sorry for another stupid question: how can I do that? To tell the truth, I don't have a single idea of that..
I've created my property sheet using the Visual C++ components, so it's quite standard..
what would you suggest..?
thank You in advance..
|
|
|
|
|
Hi,
Until last week, I was programming with Visual C++ 6.0.
Now my company has installed Visual Studio .NET.
I want to compile an old project.
In Visual C++ 6.0 I was able to set the directories of include and source files from the Options dialog.
Where can I do that in Visual Studio .NET ?
Thanks,
Claude
|
|
|
|
|
Me too.
Project | Properties | Configuration Properties | C/C++ | General | "Additional include directories".
/ravi
My new year's resolution: 2048 x 1536
Home | Articles | Freeware | Music
ravib@ravib.com
|
|
|
|
|
I have a large icon that I'm using as the 32x32 icon for my application. Visual Studio creates a 16x16 version of the icon to display as the smaller version. I don't like the conversion VS made so I made my own 16x16 version. My question is, how do I incorporate the 16x16 icon into my application? I don't know how to tie it to the application so it gets displayed as the small version of my application icon instead of the VS-generated one.
Thanks for the help!
-Ian
|
|
|
|
|
delete it from menu "image" in resource edit
includeh10
|
|
|
|
|
I don't follow...
What do I delete and how do I delete it? I'm using VS6 if that makes a difference.
I assume you mean to delete the 16x16 version that VS generated? If so, after I do that, how do I tell VS to use my 16x16 version? How do I tie it in?
Thanks,
Ian
|
|
|
|
|
do you want to use 16x16 image for icon?
includeh10
|
|
|
|
|
I want my application to use the 32x32 icon when applicable, and the 16x16 icon where applicable. But when Windows needs to show the 16x16 version, I want it to use my 16x16 version, not the one generated by VS.
-Ian
|
|
|
|
|
i think u don't know how to edit the 16x16 image?
when u edit the icon, go to menu image/open-device-image then select 16x16 one from dialog box of "open icon image".
includeh10
|
|
|
|
|
The 16x16 that I want shows up in the resource editor but that is not the one that is being used. Windows is still displaying the one VS generated. I don't know where it's coming from or how to get rid of it and force the 16x16 icon I created to get used.
|
|
|
|
|
Ian Bowler wrote:
I don't know where it's coming from or how to get rid of it...
Each icon resource generally has 1-3 resolutions (16x16, 32x32, and 48x48). To edit a particular resolution, open the icon in the resource editor and select the desired resolution from the Device: combobox.
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow
|
|
|
|
|
CWinApp::LoadIcon loads only the 32x32 icon. What you have to do is use the LoadImage() function, specifing the size of the icon you want (16x16) and use that icon in the CWnd::SetIcon() function.
Check out CWinApp::LoadIcon, LoadImage, and CWnd::SetIcon in MSDN for more information.
"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
|
|
|
|
|
As it turns out, the problem was that the 16x16 had a lower color depth than the 32x32. I modified the color depth of the 16x16 version to that of the 32x32 version and that fixed the problem. I'm guessing Windows (I'm on XP) defaults to it's own 16x16 version if the one supplied has less color depth than the 32x32 version?
Strange...
Thank you all for your help. I really appreciate it.
-Ian
|
|
|
|
|
How would I go about setting up a class with dynamic array?
class CMyArray : public CObject
{
private:
int array[MAXSIZE]; //MAXSIZE is dynamic
public:
CMyArray();
virtual ~CMyArray();
};
I tried using template but when I am getting invalid use of local variable ' ' as non-type argument
int main(){
int size=30;
CMyArray<size> *pMyArray;
pMyArray = new CMyArray<size>;
return 0;
}
|
|
|
|