|
I don't know of something like IsTextRTF(). But you can make one yourself. For instance, the specifications say that the RTF should have a Header ^, without which, the text won't be RTF.
You can search for articles on an RTF reader application and know how the header is parsed.
Many are stubborn in pursuit of the path they have chosen, few in pursuit of the goal - Friedrich Nietzsche
.·´¯`·->Rajesh<-·´¯`·.
[Microsoft MVP - Visual C++]
|
|
|
|
|
i am using CDaoDatabase to connect to ms-access database and trying to insert records in some table.
it works fine when used through a gui thread (main thread) any number of times, but the application crashes when i try to insert a record via a worker thread after i have inserted in main thread, although all the insert queries are same and work at different times.
code snippet:
CDaoDatabase daodb;
daodb.open("D:\\test.mdb");
if(daodb.IsOpen())
{
daodb.Execute(strQuery);
daodb.close();
}
when i try to debug it gives access violation when it tries to open the database.
thanks
|
|
|
|
|
Hi,
To my knowledge, none of the MFC DAO classes are thread safe. You are not supposed to access DAO objects from threads other than the main GUI thread. You have to use "SendMessage" to the main APP window from the worker threads to access DAO objects in the main GUI thread.
The best alternative I would suggest is ADO which is thread-safe.
But you can try the following approaches.
1. Instead of using a worker thread, create a user interface thread by deriving a class from CWinThread and call AfxDaoInit() function from the override InitInstance method before you start using DAO objects.
or
2. Try the worker thread itself. Call AfxDaoInit() method before you start using DAO objects.
cheers
Varghese Paul
|
|
|
|
|
Hi,
I am again asking the same question because yesterday I was unable to login. Questio is:
I am filling some cluster of Harddisk with some data, It is running fine with all other operating system except Windows Vista.
WriteFile() function is getting fail in Vista.
I am getting errro "5-Access Denied".
Can anybody help me?
|
|
|
|
|
I read many similar problems on vista on CP and most of these file related problems had following answer.
"You require Administrator access".
Regards,
Sandip.
|
|
|
|
|
|
Vista is a whole new world when it comes to access rights. Back in XP and older OS you almost always could write anywhere... But, under Vista you are much more restricted!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br />
Peter Weyzen<br />
Staff Engineer<br />
<a href="http://www.soonr.com">SoonR Inc -- PC Power delivered to your phone</a>
|
|
|
|
|
Whole new world? Hardly.
These are the same rules that started with Windows 2000.
Old world rules enforced
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
i want to add country validation in my dialog EDITBOX
|
|
|
|
|
Go for it.
Many are stubborn in pursuit of the path they have chosen, few in pursuit of the goal - Friedrich Nietzsche
.·´¯`·->Rajesh<-·´¯`·.
[Microsoft MVP - Visual C++]
|
|
|
|
|
yeap yeapp yeaaapp go for it!!!!!!!!!!!!!!!!
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow Never mind - my own stupidity is the source of every "problem" - Mixture
cheers,
Alok Gupta
VC Forum Q&A :- I/ IV
Support CRY- Child Relief and You/xml>
|
|
|
|
|
We can't allow this to happen!
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
i may have written my question improperly . Actually i have created a CDialog (Using resources)which contains user registration form in which i have to validate name, zip, country etc ... when i click the sumbit button.
i am not able to write validate for country.
|
|
|
|
|
samrw wrote: i am not able to write validate for country
What defines a valid country?
Do you check the user's entry against a list?
If so, you could provide the list in a combo box so
the user can't input an unknown value.
Mark
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
the user registration form which i am making only contains CEdit(Edit control) from resources . so i can't use combobox.
|
|
|
|
|
Okay...but I thought validation was the problem?
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
I wanna convert the CString data to the _bstr_t,I need some advice.
|
|
|
|
|
aygrhnwms304 wrote: wanna convert the CString data to the _bstr_t,I need some advice.
isn't CString csSomeData = "CP";
_bstr_t csSomeBstrdta(csSomeData); doesn't work!
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow Never mind - my own stupidity is the source of every "problem" - Mixture
cheers,
Alok Gupta
VC Forum Q&A :- I/ IV
Support CRY- Child Relief and You/xml>
|
|
|
|
|
if
CString csSomeData="CP";
_bstr_t csSomeBstrdta(csSomeData);
The result of the data 'csSomeBstrdta' is not "CP" but "CP (1)".
So I wanna look for a more correct way.
|
|
|
|
|
aygrhnwms304 wrote: The result of the data 'csSomeBstrdta' is not "CP" but "CP (1)".
its not "CP (1)" but "CP" (1) . The (1) is the reference count of the BSTR, not the part of string.
Regards,
Jijo.
_____________________________________________________
http://weseetips.com[ ^] Visual C++ tips and tricks. Updated daily.
|
|
|
|
|
Thanks.
I have some code as follows:
_ConnectionPtr m_connection;
_RecordsetPtr m_Record;
......
m_connection->Open("","","",adModeUnknown);
the parameter 1 must be the _bstr_t.
So I convert the CString to the _bstr_t:
CString m_str=_T("abc");
_bstr_t m_bstr(m_str);
and I debug the code:
m_connection->Open(m_bstr,"","",adModeUnknown);
It seem to be correct,but it is wrong.
What should I do?
|
|
|
|
|
You may use the CString::SysAllocString() to assign the string stored in a CString to a BSTR variable. You must then use the SysFreeString(bstr_variable) to free the allocation after you're done with it.
Many are stubborn in pursuit of the path they have chosen, few in pursuit of the goal - Friedrich Nietzsche
.·´¯`·->Rajesh<-·´¯`·.
[Microsoft MVP - Visual C++]
|
|
|
|
|
Rajesh R Subramanian wrote: You may use the CString::SysAllocString() to assign the string stored in a CString to a BSTR variable. You must then use the SysFreeString(bstr_variable) to free the allocation after you're done with it.
this is good method, but i always want to leave memory allocation/deallocation stuff to smartpointers or wrapper classes like _bstr_t and CComBSTR
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow Never mind - my own stupidity is the source of every "problem" - Mixture
cheers,
Alok Gupta
VC Forum Q&A :- I/ IV
Support CRY- Child Relief and You/xml>
|
|
|
|
|
I infact saw he was actually using _bstr_t , but I just wanted to point out how can he convert from CString to BSTR , which is what I thought he needed to understand.
Many are stubborn in pursuit of the path they have chosen, few in pursuit of the goal - Friedrich Nietzsche
.·´¯`·->Rajesh<-·´¯`·.
[Microsoft MVP - Visual C++]
|
|
|
|
|
sorry if i sound rude in above reply.. i just presenting my thought .. hope you don't mind!
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow Never mind - my own stupidity is the source of every "problem" - Mixture
cheers,
Alok Gupta
VC Forum Q&A :- I/ IV
Support CRY- Child Relief and You/xml>
|
|
|
|