|
I don't believe it is documented. But if you step into the _access() call while debugging, it's right there.
|
|
|
|
|
Thanks for the tip.
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow
|
|
|
|
|
I think you might be surprised if you take a 'generic' C app and build it in windows and then trace through the 'standard C function' calls. You will find many of them devolving into regular WIN32 API calls. People were trying to convince me one time that the File* functions (fopen, close, fprintf, etc.) were faster than CreateFile WriteFile, ReadFile, etc. I traced into the C runtime and find that after a lot of variable hashing and flags manipulation, they end up calling the Win32 API anyway, so I just started calling the Win32 API directly, as there is no effort at being 'port ready' to other platforms for our products.
I am not surprised that _access calls GetFileAttributes.
|
|
|
|
|
ChemmieBro wrote:
The path is a BSTR, casted to char*, casted to LPCTSTR, if this is a problem.
It is. A BSTR is a unicode string; you can't cast it to a char*. You'll have to call the unicode version of the function (GetFileAttributesW() ), or use the W2T() ATL conversion macro to convert from unicode to LPCTSTR.
Ryan "Punctuality is only a virtue for those who aren't smart enough to think of good excuses for being late" John Nichol "Point Of Impact"
|
|
|
|
|
I implemented a function for something I worked on that checks to see if a file exists, but the documentation indicates that it works for directories as well as files. So take a look at this. It's worked well for me and seems very reliable. It seems different than the other responses, so if you are still looking for an alternative; here you go.
I simply created a CString as input. The CString may contain wildcard characters such as * or ?. FindFirstFile is a global method and can be found in the MSDN library so go ahead and look it up and feel free to cut and paste this function and play with it to see how it works. It's pretty simple.
BOOL CDXControlDlg::IsNewFile(CString& sPath)
{
// Check if files exists already
WIN32_FIND_DATA fileInfo;
HANDLE hFile = ::FindFirstFile(sPath, &fileInfo);
if (hFile == INVALID_HANDLE_VALUE) {
// File not found
return TRUE;
} else {
// File exists.
::FindClose(hFile);
return FALSE;
}
}
Best Regards,
Shawn
|
|
|
|
|
Hallo,Before all i want to say sorry to my poor english.
I'm little new in this kind of develop like C++, and i'm trying to do a client server in visual c++ where i have to do a connection with the login of one user that previous is registered (but it's not my problem).When i have the user login, with this user i have to send the information to the server and the server will say me what access i have, like if i have access to different devices like USB, cd-Rom,..( it's my real problem, how can i restrict the different kind of devices?) or what files have i access to download to my client and i think that here i have to implement Encrypt of files.
Somebody can say me how can i do this or which libraries can i use or a idea of like implement this problem.
Thank you very much and i hope that you can help me.
|
|
|
|
|
As for the client/server part of the question, I'd suggest that you look into writing network applications, there are plenty of good books on this. There is one by MS press that is great. As for the restricting access to devices part of the question, I'd suggest that you outsource this work to someone who knows about the internals of windows, someone who can develop device drivers. This isn't the sort of thing I'd suggest doing yourself if you don't have the understanding of these concepts already. You won't find any libraries to do this for you.
-- Rocky Dean Pulley
|
|
|
|
|
Ok, thanks, so you recommended me that i read something about Network applications, ok. But i have one question more, to who can i ask about develop device drivers?.
Thanks.
/Jorge
|
|
|
|
|
Hello all,
I am running into a somewhat odd problem with printing from an MFC program. I am getting printouts just fine, but there seems to be a difference between the preview page and the printed page. The preview, in this case, prints 40 lines to a page, while the printed version prints 41. Since the overall printout is about 64-65 pages long, this is causing the last few pages to be very different between the two.
I put in some TRACE statements to print the height of a line with each font type I am using, and this is what I got (the fonts are all Times New Roman, various point sizes):
For the Preview version:
Preparing Page 2
Page 2
Report Hdr: 00155
Page Hdr: 00095
Table Caption: 00115
Column Hdr: 00115
Table Body: 00095
Table Total: 00095
Page Footer: 00075
Report Footer: 00075
Printing Page 2
Line Start 1110
Line Start 1225
Line Start 1340
Line Start 1455
Line Start 1570
Line Start 1685
Line Start 1800
...
Line Start 5020
Line Start 5135
Line Start 5250
Line Start 5365
Line Start 5480
Line Start 5595
For the Print version:
Preparing Page 2
Page 2
Report Hdr: 00151
Page Hdr: 00094
Table Caption: 00114
Column Hdr: 00114
Table Body: 00094
Table Total: 00093
Page Footer: 00075
Report Footer: 00075
Printing Page 2
Line Start 1108
Line Start 1222
Line Start 1336
Line Start 1450
Line Start 1564
Line Start 1678
Line Start 1792
...
Line Start 4984
Line Start 5098
Line Start 5212
Line Start 5326
Line Start 5440
Line Start 5554
Line Start 5668
As you can see, the font heights are a little different. This is causing an extra line per page. I did not think this was possible, since I am using the default printer definition in both cases. Is there any way to compensate for this?
Thanks for any hint anyone can provide.
Santanu
|
|
|
|
|
Hi
I have trouble using CDoc variable in MainFrm. I have included Cdoc.h in MainFrm but the error of undeclared variable still existed.
CDoc& pDoc = GetDocument();
ASSERT_VALID(pDoc);
This is how I normally getting CDoc variable from CView but it doesnt work in MainFrm. Please advise. THanks.
|
|
|
|
|
I think there is a GetActiveDocument(). If not that, then use GetActiveFrame(), from there you get the view of the frame and from that the document of the view.
Its a bit long winded.
If you vote me down, my score will only get lower
|
|
|
|
|
Hi
Both of them cannot solve my problem. I got error C2440 for both of them.
THanks
|
|
|
|
|
Hi
Thanks for the advice.
Now, I created a new dialog class and i wanna use CDoc variable. AfxGetMainWnd doesnt work. I have tried GetActiveDocument and GetActiveFrame but it is for MainFrm. THanks.
|
|
|
|
|
Hello ,i had a problem . I am trying 2 communicate between 2 different languages ,throughs socket. i had create a socket and opened it in listening mode at some port. the data received is in form of xml , xml is parsed and according to that, data it is send to some specific module.
i want my port to listein various request continously.
but until that application is completed , the socket is unable to listein again. i want to implement multithreading in that.
such that my application as it receives the xml , send it to the parser and again start listening.
Plz help me in that. ANy suggestion would be helpful
Thanks in advance
Rahul Agarwal
|
|
|
|
|
|
Take a look at http://www.flounder.com/detach.htm#Sockets.
This should get you on your way.
Tom Wright
tawright915@yahoo.com
|
|
|
|
|
Hi. please help
I have associated one pane of a view created by CSplitterWnd to a CFormView derived class in OnCreateClient, now I want to switch between different CFormView classes at runtime. what is the safe way to do that? should I do that from CDocument class or... thank you
|
|
|
|
|
I know Paul Dilascia wrote an article on replacing views many years ago on MSJ[^].
You should also be able to do a search on codeproject for "replacing view" or such.
Iain.
|
|
|
|
|
How about this (fragments of my code):
<br />
CMainFrame *pMainFrame=(CMainFrame*)AfxGetMainWnd();<br />
(pMainFrame->m_wndSplitter).ReplaceView(RUNTIME_CLASS( CRightView ), CSize(100,100)); <br />
(pMainFrame->m_wndSplitter).ReplaceView(RUNTIME_CLASS( CColorRight ), CSize(100,100)); <br />
<br />
Hope, this will help you, bilas.:->
|
|
|
|
|
It won't help *me* much, or anyone using MFC4.2 (comes with VC++ 6).
I've just looked at the docs, and also the relevant header file, and
ReplaceView is not a member of CSplitterWnd. It might be under later
versions though. Behind the times, I am.
If that actually is cut and paste from your code, rather than from
memory, I'm surprised there's no paramater for *which* splitter view
to change. Or did you have your own splitter pane which only changes
(eg.) the pane on the right?
Being picky, I would recommend he handles this in his CChildFrame (MDI)
or CMainFrame (SDI), so the casting wouldn't be necessary. But I
was lazy!
But doing the search I recommended comes up with an article on how
to do exactly what I think Anonymous wants.
|
|
|
|
|
I want to make a program that can connect to internet and use up to date information without having to manually enter that information. How do I retrieve information such as a text in a table cell from the IE browser? Can I do that without programmatically openning the browser and/or downloading the whole page?
|
|
|
|
|
What you're asking for is not that simple.
I don't know how you would be able to retrieve information from the IE browser, but if you added a web browser component to a MFC dialog you might be able to get some information that way.
Retrieving the text from a table cell is impossible without downloading the whole page. This is a restriction of HTML and HTTP.
As for your other question "without opening the browser", yes you can download information from the net without opening a web browser but it would still have to act like a web browser. I can't remember the name at the moment but it is possible to use an API to download a website.
Greba,
My lack of content on my home page should be entertaining.
|
|
|
|
|
|
It will little easy if you know little bit of ATL.
#1 you have two option either Use URLDownloadToFile Function to download the file(html,asp etc) or you can use raw WinInet api to get content of that page(you will find a wrapper class for that Here[^])
#2 now after getting the file, load that file in IHTMLDocument2 and parse the file as required by you.
"I Think this Will Help"
[Vote One Here,.....]
<h5
alok gupta="" <br=""> visit me at http://www.thisisalok.tk
|
|
|
|
|
Thanks guys.
|
|
|
|