Thread: Problem during compile (iostream.h error)

  1. #1
    Registered User
    Join Date
    Sep 2001

    Problem during compile (iostream.h error)


    i working on a small project to learn again how to make some stuff in C. I use Borland C++ 5.01. Ok at the moment i try to make a new dll file (the second one) and i want to put a nice search function (found on planet-source code) into this dll. I made already a dll and it seems that it works but now it seems that my Borland doesn´t like me or my my source code of my second dll. I can not compile this source code with included iostream.h. If i include this iostream (i must do it, cause i need it for the search function) the Borland compiler gives me this error message:

    error: IOSTREAM.H(24,2):Error directive: Must use C++ for the type iostream.

    What should i change to compile this source code ?

    #include <stdio.h>
    #include <conio.h>
    #include <string.h>
    #include <iostream.h>
    #include <windows.h>
    Does a recursive search for an archived file
    starting at the root directory passed.......
    base conditions: out of directorys to call
    or found the file..........................
    __declspec(dllexport) void findPath(char *root, char *file, char *buffer)
    	//stuff for the file searc loop
    	HANDLE          h;
    	BOOL            ok;
    	WIN32_FIND_DATA	fd;
    	char start[256];//character var's...
    	char dir[256];
    	bool found=false;//search flag
    	char test[1000];//paranoia
    	strcpy(test,buffer);//using test as a temp location
    	int tlen = strlen(file);//get length of file name
    	if(testStrings(test,file))//test for it
    		return;//return if it is need to look further
    	if(strlen(root)>0)//if they passed a valid string for the root
    		strcpy(start, root);//modify it to search for all files/folders....
    	//steven at gets credit for the for loop idea..processing inside the loop is mine
    	for (h =FindFirstFile(start, &fd), ok=1;h!=INVALID_HANDLE_VALUE && ok; ok=FindNextFile(h, &fd))
    		if(fd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)//use bitwise and to test the returned fileattributes
    			strcpy(dir,fd.cFileName);//assuming it is a dir so copy over
    			if((testStrings(dir,".")==false))//make sure it is not the defaul parent...
    				if((testStrings(dir,"..")==false))//..or child indicator, copying this over results in infinite recursion
    					if(found == false)//if we have not found the file in this current call then make a call
    						findPath(test,file,buffer);//and recurse through them.....
    					}//end found
    				}//end .. test
    			}//end . test
    		}//end dir test
    		if(fd.dwFileAttributes & FILE_ATTRIBUTE_ARCHIVE)//now use bitwise and to check for file flag
    			found = testStrings(file,fd.cFileName);//if we have a file is it the one we want?
    			if(found == true)
    				strcpy(buffer,root);//if it is create the full path name to it and copy into buffer
    			}//end found test
    		}//end archive test
    	}//end for
    	int error = GetLastError();
    	if (error!=ERROR_NO_MORE_FILES)
    	    printf("Find*File: error %d\n", error);
    	    BOOL ok = FindClose(h);
    		if (!ok)
    	        printf("FindClose: error %d", GetLastError());
    //test's to charS for equality, returns true or false
    /*static bool */
    testStrings(char *s1, char *s2)
     	int x1=0;
    	bool ret=true;
    	x1 = strlen(s1);
    	if(strlen(s2) != (unsigned)x1)
    		for(int i=0;i<x1;i++)
    			if(s1[i] != s2[i])
    				ret = false;
    	return ret;

  2. #2
    Registered User
    Join Date
    Nov 2002
    Make up you mind, is this C or C++ code? If it is C++, then we are in the age of compliance:


    You are probably trying to use C++ on a C compiler, that is a no no.

  3. #3
    Registered User hk_mp5kpdw's Avatar
    Join Date
    Jan 2002
    Northern Virginia/Washington DC Metropolitan Area
    If your source file has a ".C" extension, then the compiler will compile that file based on C rules. You need to change it so the extension of the source code file is ".cpp" or whatever your compiler will recognise as being a C++ source file. Then your compiler will know to compile the file according to the C++ rules.
    "Owners of dogs will have noticed that, if you provide them with food and water and shelter and affection, they will think you are god. Whereas owners of cats are compelled to realize that, if you provide them with food and water and shelter and affection, they draw the conclusion that they are gods."
    -Christopher Hitchens

  4. #4
    Registered User
    Join Date
    Sep 2001
    *boing*..just renamed into *.cpp and error ..thanks very much

  5. #5
    Registered User
    Join Date
    Nov 2002
    You should probably write valid C++ code wgile you are at it.

Popular pages Recent additions subscribe to a feed

Similar Threads

  1. error: template with C linkage
    By michaels-r in forum C++ Programming
    Replies: 3
    Last Post: 05-17-2006, 08:11 AM
  2. Game Pointer Trouble?
    By Drahcir in forum C Programming
    Replies: 8
    Last Post: 02-04-2006, 02:53 AM
  3. Why wont my function exit correctly?
    By LightsOut06 in forum C Programming
    Replies: 2
    Last Post: 10-09-2005, 09:23 PM
  4. very weird .h problem
    By royuco77 in forum C++ Programming
    Replies: 1
    Last Post: 09-11-2005, 07:55 AM
    By Registered in forum C++ Programming
    Replies: 1
    Last Post: 07-15-2002, 03:23 PM