|
If it's a static control, just make it big at design time, and only put a little text in it.
If there's not room to make it big to start, then there won't be room to grow later, will there?
Or will your dialog box grow too?
Iain.
Plz sir... CPallini CPallini abuz drugz, plz plz help urgent.
|
|
|
|
|
|
> dot net 2003
Then you might be better asking in a .NET forum? (eg, C++/CLI, or C#, etc)
Iain.
Plz sir... CPallini CPallini abuz drugz, plz plz help urgent.
|
|
|
|
|
In a Managed Extensions app or a native app?
Mark
|
|
|
|
|
For example:
void *p = new CArray<int>;
delete p;
It can't work, why?
modified on Thursday, June 26, 2008 6:27 AM
|
|
|
|
|
It can't work because CArray is a template, and you've not declared it properly.
Can I have my biscuit now?
Iain.
Plz sir... CPallini CPallini abuz drugz, plz plz help urgent.
|
|
|
|
|
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
[My articles]
|
|
|
|
|
|
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
[My articles]
|
|
|
|
|
void *a = new CArray<int,>;
CArray<int,> *q = (CArray<int,> *) a;
delete q;
Without digging into more detail than I care about, deleting a void * gives you trouble, as void is zero length, but you allocated a chunk of ram of a certain length. Also, void * won't have a destructor, so any clever things done inside CArray would not be tidied up.
Not so fussed about tea - got that already - but Iain wanna bikkit!
Iain.
Plz sir... CPallini CPallini abuz drugz, plz plz help urgent.
|
|
|
|
|
Wait, the delete still crashes.
CItemData::CItemData(ItemType type, CArray<Gdiplus::PointF> *pFig)
{
m_type = type;
m_pFig = pFig;
}
CItemData::~CItemData()
{
delete m_pFig;
}
|
|
|
|
|
followait wrote: Wait, the delete still crashes.
1/ You missed out how your item is initialised: ie, where pFig comes from.
2/ The following code works just fine.
class CItemData
{
public:
CItemData (CArray<int,int&> *pFig)
{
m_pFig = pFig;
}
~CItemData()
{
delete m_pFig;
TRACE0("m_pFig deleted nicely\n");
}
protected:
CArray<int,int> *m_pFig;
};
CItemData i (new CArray<int,int&>);
I made the array a simple one, as I couldn't be fussed finding my gdiplus headers. I also make sure that pFig has been allocated with new - is that true for your code?
Iain.
Plz sir... CPallini CPallini abuz drugz, plz plz help urgent.
|
|
|
|
|
is the object pointed to by m_pFig deleted twice?
Mark
|
|
|
|
|
Yes
|
|
|
|
|
Well there's your problem right there
|
|
|
|
|
I have a filename like "D:\\myfolder\\aaaa.avi".
I have to extract the name of the avi file.have searched.but found methods for extracting only the first half.i use vc++
|
|
|
|
|
See PathFindFileName()[^]
Nobody can give you wiser advice than yourself. - Cicero
.·´¯`·->Rajesh<-·´¯`·.
Codeproject.com: Visual C++ MVP
|
|
|
|
|
Modified: Rajesh's answer is better - and has a link!
PathStripPath is your friend.
Or you could do it manually by putting the text into a CString, and using Find ('\\') and Mid to strip it away - but you might miss out on wacky things like /s, etc. Get the shell development people to do the heavy lifting for you!
Iain.
Plz sir... CPallini CPallini abuz drugz, plz plz help urgent.
|
|
|
|
|
Can you use of FindFirstFile?
|
|
|
|
|
Hi all,
I m using a Validation for any CString type variable of Edit box control.
CString str;
if(str=="")
{
AfxMessageBox("It should not be blank");
}
if it is blank than it is working properly.
if i use only space in edit control.(there is no text only space is used)
than it not gives error please tell me how can i check it in case of space .
Please help me for this .
Thanks in advance.
IN A DAY, WHEN YOU DON'T COME ACROSS ANY PROBLEMS - YOU CAN BE SURE THAT YOU ARE TRAVELLING IN A WRONG PATH
|
|
|
|
|
if (str.trim().IsEmpty()) {
}
modified on Thursday, June 26, 2008 5:32 AM
|
|
|
|
|
toxcct wrote: if (str.trim().empty()) {
I guess you mean str.Trim().IsEmpty() . isn't it?
|
|
|
|
|
|
Hi
I have been fighting with this for days moving from random error to random error.
I am trying to write what is effectively a software driver for a decklink blackmagic capture card using the directshow api.
The code I have here is basically the sample code from the MSDN website to get all the video devices on the system
but I just seem to get errors everytime I try to compile this!
#pragma once
#include "stdafx.h"
#define DllExport __declspec(dllexport)
#pragma comment(lib,"Strmiids.lib")//Includes the directshow library
class VideoCapture
{
public:
VideoCapture(void);
void getNames();
void getDevice();
void createFilter();
public:
~VideoCapture(void);
};
#include "stdafx.h"
#include "VideoCapture.h"
#include "dshow.h"
#include "Atlbase.h"
#include "Atlcom.h"
#ifdef _MANAGED
#pragma managed(push, off)
#endif
BOOL APIENTRY DllMain( HMODULE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
return TRUE;
}
#ifdef _MANAGED
#pragma managed(pop)
#endif
VideoCapture::VideoCapture(void)
{
}
VideoCapture::~VideoCapture(void)
{
}
ICreateDevEnum *pDevEnum;
IEnumMoniker *pEnum =NULL;
HWND hList;
IMoniker *pMoniker = NULL;
IFilterGraph *m_pGraph=NULL;
VARIANT varName;
IPropertyBag *pPropBag = NULL;
HRESULT hr;
__declspec(dllexport) void __cdecl getDevice()
{
hr = CoCreateInstance(CLSID_SystemDeviceEnum, NULL,
CLSCTX_INPROC_SERVER, IID_ICreateDevEnum,
reinterpret_cast<void**>(&pDevEnum));
if (SUCCEEDED(hr))
{
hr = pDevEnum->CreateClassEnumerator(
CLSID_VideoInputDeviceCategory,
&pEnum, 0);
}
}
__declspec(dllexport) void __cdecl getNames()
{
while (pEnum->Next(1, &pMoniker, NULL) == S_OK)
{
hr = pMoniker->BindToStorage(0, 0, IID_IPropertyBag,
(void**)(&pPropBag));
if (FAILED(hr))
{
pMoniker->Release();
continue;
}
VariantInit(&varName);
hr = pPropBag->Read(L"Description", &varName, 0);
if (FAILED(hr))
{
hr = pPropBag->Read(L"FriendlyName", &varName, 0);
}
if (SUCCEEDED(hr))
{
USES_CONVERSION;
(long)SendMessage(hList, LB_ADDSTRING, 0,
(LPARAM)OLE2T(varName.bstrVal));
VariantClear(&varName);
}
pPropBag->Release();
pMoniker->Release();
}
}
__declspec(dllexport) void __cdecl createFilter()
{
IBaseFilter *pCap = NULL;
hr = pMoniker->BindToObject(0,0,IID_IBaseFilter,(void**)&pCap);
if (SUCCEEDED(hr))
{
hr = m_pGraph->AddFilter(pCap,L"Capture Filter");
}
}
It seems determined to return this error to me no matter what order I put the includes in at the top, and if I put one of them completely out of place i get around 114 errors returned back to me
The error is:
Fatal error c1189: #error : Need to include strsafe.h after tchar.h
any help with this would be greatly appreciated
Cheers
boyindie
|
|
|
|
|
What's in your stdafx.h file?
You also shouldn't be including stdafx.h in your VideoCapture.h file
if stdafx.h is used for a pre-compiled header.
Mark
|
|
|
|