C-RunTime or Win32

This is a big question I always get in my mind, that Should I use C-Run Time Library
functions or Win32 Functions?
e.g. A simple task, open a file, if exist, open for read or open as append for write, what
is its path, directory, extension, file attributes, etc.
Now, all these taks, we need in our every projects, and hence I hace this question, that
CRTL or Win32.

Thanks for your vital views.


0
Lord2702 (51)
3/16/2005 7:18:56 AM
vc.mfc 33608 articles. 0 followers. Follow

6 Replies
566 Views

Similar Articles

[PageSpeed] 53

Tom Alter wrote:
> This is a big question I always get in my mind, that Should I use C-Run Time Library
> functions or Win32 Functions?
> e.g. A simple task, open a file, if exist, open for read or open as append for write, what
> is its path, directory, extension, file attributes, etc.

Use C functions when you can, Win functions when you must. If you think 
you must use Win functions think again.
0
mac1 (347)
3/16/2005 8:39:26 AM
Mihajlo Cvetanovic wrote:
> Tom Alter wrote:
> 
>> This is a big question I always get in my mind, that Should I use 
>> C-Run Time Library
>> functions or Win32 Functions?
>> e.g. A simple task, open a file, if exist, open for read or open as 
>> append for write, what
>> is its path, directory, extension, file attributes, etc.
> 
> 
> Use C functions when you can, Win functions when you must. If you think 
> you must use Win functions think again.

Why on earth would you make a statement like that ?

If you are writing a Windows program, use MFC.

If you are writing a console program which may be run on other platforms, use STL.
0
isemmel (236)
3/16/2005 8:55:36 PM
Ian Semmel wrote:
> Mihajlo Cvetanovic wrote:
> 
>> Use C functions when you can, Win functions when you must. If you 
>> think you must use Win functions think again.
> 
> Why on earth would you make a statement like that ?
> 
> If you are writing a Windows program, use MFC.
> 
> If you are writing a console program which may be run on other 
> platforms, use STL.

Yes, well when I said C, what I really meant is C++ (with STL), sorry. 
Even if you are writing a Windows program it is a good idea to separate 
all the functionality of a program from GUI. MFC handles the GUI, 
standard C++ handles all the rest. It's counterproductive to bare 
portability in mind all the time, but it's a good idea to use portable 
solutions when you can.

Unfortunately, I for one am not following my own advice. When you're 
learning both C++, MFC and SDK at the same time it tends to mix into 
something inseparable and unportable. And That Is Not A Good Thing.
0
mac1 (347)
3/17/2005 10:44:47 AM
Whatever.

Seriously, you have lots of choices, and whatever you choose is probably right. Note that
for the C runtimes there are also Unicode version of the I/O operations, if you are
dealing with text; if you are dealing with binary data, it hardly matters. Use whatever
makes sense to you.

In exotic conditions, there are reasons you might need to use the WIn32 API; for example,
opening a file without buffering is one such. But these are not common cases. And you
ignored the other piece of the question, the MFC library. I will use CFile or CStdioFile
by preference for most of my work, because they are more convenient than either the CRT
functions or the Win32 native functions for a lot of what I do. But if I do asynchronous
I/O, I always use the Win32 native I/O functions.
					joe

On Tue, 15 Mar 2005 23:18:56 -0800, "Tom Alter" <Lord2702@MSN.com> wrote:

>This is a big question I always get in my mind, that Should I use C-Run Time Library
>functions or Win32 Functions?
>e.g. A simple task, open a file, if exist, open for read or open as append for write, what
>is its path, directory, extension, file attributes, etc.
>Now, all these taks, we need in our every projects, and hence I hace this question, that
>CRTL or Win32.
>
>Thanks for your vital views.
>

Joseph M. Newcomer [MVP]
email: newcomer@flounder.com
Web: http://www.flounder.com
MVP Tips: http://www.flounder.com/mvp_tips.htm
0
newcomer (15974)
3/19/2005 6:13:15 PM
Hello Joseph:
I appreciate your reply. Actually, I posted the query on Mar 15, and reply received on Mar
19, and that also it did not appear under the node of my query. I have seen this problem.
I am using OE (Outlook Express), and whenever I want to reply, I right click on that node,
and select reply to Group, and not reply to sender (which should be), only then it appears
under that particular node.
Thanks for your views. I do appreciate that MFC is all the way good, but sometimes, you
have to work w/o MFC, in such cases, only choice is either Win32 or C-RTL. Even if I use
MFC, I never use CString class as declaring global, or class variables, I always use
Generic types. If inside the function local variables, it is OK to use CString. I was
working on a project w/o. MFC, and requires heavy operation on File name, paths and
directory. But in this case there are very few functions available in Win32. Like
_tsplitpath and _tmakepath functions are not there in Win32. And hence I put this query. I
also came to know in this group, that most of the C-RTL functions are inlines, and hence
they are fast, and also compatible to UNIX and Linux. Like ZeroMemory, is more bulky than
memset.
I will appreciate if you have more views on this point.


"Joseph M. Newcomer" <newcomer@flounder.com> wrote in message
news:ioqo31dqv4sjghat7vbd1ke2bkln3h1r9e@4ax.com...
> Whatever.
>
> Seriously, you have lots of choices, and whatever you choose is probably right. Note
that
> for the C runtimes there are also Unicode version of the I/O operations, if you are
> dealing with text; if you are dealing with binary data, it hardly matters. Use whatever
> makes sense to you.
>
> In exotic conditions, there are reasons you might need to use the WIn32 API; for
example,
> opening a file without buffering is one such. But these are not common cases. And you
> ignored the other piece of the question, the MFC library. I will use CFile or CStdioFile
> by preference for most of my work, because they are more convenient than either the CRT
> functions or the Win32 native functions for a lot of what I do. But if I do asynchronous
> I/O, I always use the Win32 native I/O functions.
> joe
>
> On Tue, 15 Mar 2005 23:18:56 -0800, "Tom Alter" <Lord2702@MSN.com> wrote:
>
> >This is a big question I always get in my mind, that Should I use C-Run Time Library
> >functions or Win32 Functions?
> >e.g. A simple task, open a file, if exist, open for read or open as append for write,
what
> >is its path, directory, extension, file attributes, etc.
> >Now, all these taks, we need in our every projects, and hence I hace this question,
that
> >CRTL or Win32.
> >
> >Thanks for your vital views.
> >
>
> Joseph M. Newcomer [MVP]
> email: newcomer@flounder.com
> Web: http://www.flounder.com
> MVP Tips: http://www.flounder.com/mvp_tips.htm


0
Lord2702 (51)
3/20/2005 7:52:25 PM
Check ATL::CFile

"Joseph M. Newcomer" <newcomer@flounder.com> wrote in message 
news:ioqo31dqv4sjghat7vbd1ke2bkln3h1r9e@4ax.com...
> In exotic conditions, there are reasons you might need to use the WIn32 
> API; for example,
> opening a file without buffering is one such. But these are not common 
> cases. And you
> ignored the other piece of the question, the MFC library. I will use CFile 
> or CStdioFile
> by preference for most of my work, because they are more convenient than 
> either the CRT
> functions or the Win32 native functions for a lot of what I do. But if I 
> do asynchronous
> I/O, I always use the Win32 native I/O functions.
> joe
>


0
alegr (1131)
3/21/2005 4:27:18 AM
Reply:

Similar Artilces:

Deserialize XML to runtime object
Is this possible? My goal is to create like an anonymous class, design generated from a xml file, and populated and lastly displayed to the user. Is there some fancy .net 3.5/4 solution with like reflection/codedom/ anonymous class that can provide this? I only want the object temporarily and explore it via reflection. Option 2 is to use a xmldocument first, then populate a dataset, but that feels so .net 1.0, pardon my expression. oggelito wrote: > Is this possible? > > My goal is to create like an anonymous class, design generated from a > xml file, and popu...

How to build a project in Visual C++.net developed in Visual C++ 6
Hi, I am Nageshwar. I have developed a project in VC++ 6.0 and OpenGL. I have installed VC++.net in my system. When I compile and build the same code in VC++.net environment, I am getting errors. I have used fstream.h to read and write to files. But this header file is showing errors in VC++.net. I have used iostrea.h header. This is also showing erros. I think I need to use a different version of headers. Please suggest me how to recover from these errors. Which header file I have use instead of fstream.h header? etc., Thanks for all who help me.. Awaiting an early response, Nageshwar ...

C: Drive documents and setting expansion
Whenever I, Right Click Start then click "Explore", I get an expansion of the my user ID folders. Now, I rarely us "Documents and Settings" and would like to have it expand differently. What do I need to change so that can happen?? Thanks.. Bruce A. Julseth wrote: > Whenever I, Right Click Start then click "Explore", I get an > expansion of the my user ID folders. Now, I rarely us "Documents and > Settings" and would like to have it expand differently. > > What do I need to change so that can happen?? 1. You could ...

Create timeline for 2500 B.C. to 100 B.C.?
Visio only allows me to create timeline for after 1900 AD. Can I use Visio to create a timeline for 2500 BC to 100 BC? Visio's Divided timeline has exactly what I need except I can not enter BC as the start and end time. And Visio always require end time to be greater than the start time. Any suggestion on how I can do this in Visio? You're not going to be able to use the timeline because the code is linked to the system clock (only goes back to 1900). You'll have to use the vanilla shapes that come with visio. Al "Little Black Sheep" <Little Bl...

Visual C++ to read Strings from Serial Port
Hi. I'm doing a project using Visual C++ to read data from Serial Port. My program needs to do *something* when it receives specific data. For eg, if the program receives "Alarm 1 Zone 4", it will do something. The data received will be variable in length. My questions: 1) Any recommendations for the serial Comm Class for Visual C++? 2) How can i compare the data i receive from serial to the specific messages i'm looking for, eg data types, size of data types, limitations & etc.? Thanks. Any comments are highly appreciated. Leng As far as the serial part goes, it i...

C++ : Is it lots harder than c# and VB
Hi everyone, I learned Java whilst at university and have taught myself c# and VB.net. I think I am ok at it. I was thinking, these languages will probably be bigger in the future so I better get ready for them. But then, I also realised that COM is still quite important and so is C++. So I thought I better just try and have a look at C++ and COM. And now I'm scared. So my question is - why does C++ look so much harder than c#? For example : 1. The methods all have really stupid names that are hard to descern a function from. 2. You need to think about pointers and cleaning up ...

C#.net windows application
Since I am new to c#.net 2008 but I have worked a little with visual basic.net 2005, I have the following questions I would like to ask: 1. When I am looking at a .sln file that I will be maintaining a work, I can see there are lots of static void Main() methods in a file called program.cs throughout the solution in separate folderts. Can you tell me the purpose of this kind of code? Does this instantiate an object, is this a class libary member? 2. When running the C#.net 2008 professional version windows application, how do I know which 'main' method is being called? ...

MFC DLL Calling C# Assembly
I have been trying to get a simple mfc dll I wrote to add to numbers call a C# assembly. Here is a sample of my C++ code in my cpp file. extern "C" _declspec(dllexport) int Calc(int no1,int no2) { //result = no1 + no2; return MangedAdder(no1, no2); } #pragma managed #using <mscorlib.dll> #using <ControllerLibrary.dll> int MangedAdder(int a, int b) { ControllerLibrary::DLLController *t = new ControllerLibrary::DLLController(); return t->AddNumbers(a, b); } All I really need is an extern function in a mfc dll that calls a me...

Type Casting in C and C++
Hello NG As an old style programmer I've been casting values with the C-syntax like: double dVal=3.14; float fVal = (float) dVal; but now I've been told that the C++ syntax should do a better job float fVal = static_cast <float>(dVal); for some reason. Is this true? Will the C++ compiler really generate different (better?) code or is it simply more writing I have to do? Thanx Richie >As an old style programmer I've been casting values with the C-syntax like: > >double dVal=3.14; >float fVal = (float) dVal; > >but now I've been told that the C+...

C, C++ and C# Forums
Throne Software has opened up C, C++ and C# Forums at: http://www.thronesoftware.com/forum/ Join us! ...

C# extension functions using MSXML?
I'm having performance/memory problems using .NET's XslTransform class so I thought I'd give the MSXML object's a whirl. The question I haven't been able to find in these groups is can I use C# extension functions with the MSXML objects? More specifically to use a C# class which has all my extension functions. I've seen examples where the stylesheet uses the <msxsl:script> element and embeds C# code, but that's not a viable solution for my situation since I'll be maintaining lots of different stylesheets which require the same extension functions. (if ...

Application crashing because of chkesp.c error..
Hi, File : i386\chkesp.c Line : 42 The value of ESP was not properly saved across a function call. This is usually a result of calling a function declared with one calling convention with a function pointer declared with a different calling convention. What does this error mean ?/ The executable runs perfectly on my machine but when i give it on to the client machine.. it crashes while loading.. I need to solve this issue.. how can I ?? ===== Regards, Jigar Mehta A calling convention is the protocol used to call the function (how parameters are passed and the stack is restored). Y...

for some reason when i deploy my C# application on windows 2003 occasionaly rdr[0].ToString() hangs where rdr is a System.Data.SqlClient.SqlDataReader. Is there a fix for this? is my visual studio.net
for some reason when i deploy my C# application on windows 2003 occasionaly rdr[0].ToString() hangs where rdr is a System.Data.SqlClient.SqlDataReader. Is there a fix for this? is my visual studio.net out dated? Hi, 1. Does this seem to you to be the right Newsgroup to ask this question ? I would have suggested "microsoft.public.dotnet.framework.adonet". 2. Is there supposed to be a difference between the Message Subject and the Message body ? Isn't the Message Subject supposed to be abbreviated ? 3. As for your question : I strongly doubt if your VS.NET can be called "o...

Money 2005 'C' Column
I have several bank accounts that I track on my computer using Microsoft Money 2005; I store the data online, so that it can be accessed and edited by two users. A co-worker also uses the same data online; the deposits and checks written show up correctly, no matter which of us has entered the information. What does not show up is an entry in the reconciliation column. The reconciliation is done on my system. Then, the entries that are marked with a “C,” don’t display a “C” for my co-worker. She can never tell which entries have cleared the bank. It is a puzzle why all the informa...

Hyperlinks with C++ 6.0
Hi, I hope this is the right place to post this question, it has to do with mfc i guess. I'm trying to hyperlink, a C++ application to a Microsoft Excel spread sheet. Basically I want to simply open a file in Microsoft Excel. Does anyone know of any ways of doing this? or any available ActiveX controls which I can use to do this? I have also tried to use the Microsoft Office Spreadsheet control version 9 and 10, and I just cannot get these to work. When I insert them into my application, it just does not run properly. It starts up, but it does not show any dialog boxes, just wast...

C# windows service freezes on System.Diagnostics.Process.Start(info)
C# windows service freezes on System.Diagnostics.Process.Start(info) When I launch PSCP from a C# windows service and launch pscp 0.53 there are no issues. but when I use C# windows service to launch pscp 0.58 C# freezes in System.Diagnostics.Process.Start(info)? pscp 0.58 works fine at command line, but causes C# to freeze on ystem.Diagnostics.Process.Start(info) also i noticed that the pscp process does not show in taske manager while ystem.Diagnostics.Process.Start(info) is hanging. Reguardless of the implementation of PSCP, how can ystem.Diagnostics.Process.Start(info) ever freeze ...

CPropertySheet::OnInitDialog()
I have a problem with function CPropertySheet::OnInitDialog() after migration from VC6 to Visual Studio 2005. This is an error message: "program has performed an illegal operation and will be shut down". This runtime error occurs only on Windows 98 SE while CPropertySheet::OnInitDialog() is executing. my code: BOOL CUstawieniaSzablonowSheet::OnInitDialog() { if (m_rodzaj_wywolania =3D=3D 3) { m_psh.dwFlags |=3D PSH_NOAPPLYNOW; m_psh.dwFlags &=3D ~PSH_HASHELP; m_dialog_czynnosci.m_psp.dwFlags &=3D ~PSP_HASHELP; GetDlgItem(IDCANCEL)->SetWindowText("&Anul...

c/c++/vc++
Hi All, I want to learn c/c++/vc++ from the basics to attend an exam. I know there are many sites for that but what i want is the one in which there is a Question and Answer scenario so that i can brush them once. any help would be greatly appreciated. Thanks in advance. Kusuma. Why do you want to do this? An exam is to show proof of your existing knowledge of a particular subject. If you simply brushed over something as complex as C++, took an exam and (somehow) passed it, what value is there in that? I assume you are wanting the exam for employment purposes. If that is correct, do ...

How to convert Delphi Record to C#?
There is an old program that I'm rewriting. The program stores the data into an array and dumps it to a file. I can't seem to properly load the file though. Here is the record I'm working with: type TMyJob = record ReceiveDate: string[10]; JobName: string[150]; Contractor: string[100]; AssignDate: string[10]; DetailerName: string[30]; end; Jobs: array of TMyJob; Does anyone know how to convert this? "Magus" <mr.magus@gmail.com> wrote in message news:c234d4d2-221a-4389-802c-a1eaada8791c@v20g2000yqv.googlegroups.com... &...

decrease C:\exchsrvr\imcdata\out\archive ???
C:\exchsrvr\imcdata\out\archive Is there anything I can do to make the size of this folder to decrease? Right now, its at 10GB. Using Exchange 5.5. C drive free space is getting awefully tight... Please help... Chris H If you don't need the files, for archiving or diagnostic purposes, you can remove the files. If you do need them, then you may want to back them up before you remove them and store that backup tape separately and write protect it. Removing the files is a pretty straight-forward process. You will need to stop the IMS first... and you will likely not want to enu...

I check "windows in task bar", after restarting, it is no longer c
In Excel if I check "windows in task bar", (Tools, Opions, View Tab) after I have restarted the machine this option is now unchecked. I have unchecked "Group Similar Task Bar Buttons" in my Task Bar Properties What version of excel are you running? There's a bug in xl2k that shows up if you're working with shared workbooks. If you're not using xl2k and shared workbooks, it sounds like you don't have permission to save this setting in your windows registry. I'd talk to my IT folks to find out if they can fix it. but.... Saved from a previous post....

How do I define column C so C(n) =A(n)+B(n)
I want to create a spreadsheet where some cell entries are mathematical functions of data in corresponding cells (same row) of other columns. For example, assume fixed data in columns A and B. In column C, I want C(1) to = A(1) + B(1) etc. Hi in C1 type =A1+B1 then move your cursor over the bottom right hand corner until you see a + (known as the autofill handle) hold the left mouse down and drag down the column as far as you need to go and let go, the formula will be filled in for you for each line Cheers julieD "S M Raucher" <S M Raucher@discussions.microsoft.com>...

Outlook 2000 Runtime Error Terminate in an unusual way
This runtime error prevents any practical use of the programme as it pops up only seconds after the window opens and halts all processes. I'm using XP SP2. As advised by an MVP I tried reinstalling - no effect. She also advised I remove/disable add ins - unfortunately I'm not a) sure what constitutes an add -in and b) how to remove them if they are removed via Outlook. I need a back up plan too. How can I be sure to keep all my calendar & contact etc info safe, or to back date or locate a previous Outlook backup or even a system restore and THEN be able to fully remove out...

Visual Studio 2005 C# Example?
Anyone have a solid example of using VS2005 and C#.NET to create a COM componenent. I'm having a devil of a time getting things to work... Anyone... anyone...? "sarton" wrote: > Anyone have a solid example of using VS2005 and C#.NET to create a COM > componenent. I'm having a devil of a time getting things to work... ...

access contains several objects explain the purpose of the four c
access contains several objects explian the purpose of the four most common? Patricia Perhaps you should take your homework over to an MS Access news group rather than post in this MS Excel group. Here is a listing and links to all MS groups. http://aumha.org/nntp.htm Gord Dibben Excel MVP On Wed, 11 May 2005 11:24:03 -0700, "patricia" <patricia@discussions.microsoft.com> wrote: >access contains several objects explian the purpose of the four most common? ...