Intro Download and install Frequently Asked Questions Tips and tricks

Homepage







© J.C. Kessels 2009
MyDefrag Forum
May 20, 2013, 05:51:19 am *
Welcome, Guest. Please login or register.

Login with username, password and session length
News:
 
   Home   Help Search Login Register  
Pages: 1 [2]
  Print  
Author Topic: Update for project files  (Read 14815 times)
jeroen
Administrator
JkDefrag Hero
*****
Posts: 7155



View Profile WWW
« Reply #15 on: October 07, 2007, 08:17:04 pm »

Quote from: "elfring"
Can you imagine that it might make a difference for any other source file from the include hierarchy (Microsoft Runtime Library ...)?

Yes, I can imagine that. But as I said, with and without this switch in my Makefile the results are bit for bit the same.

Quote from: "elfring"
Your header "JkDefragLib.h" will not be usable by other C/C++ projects to import its functions.

Sigh. Not true. Just try it, it works like a charm. There is an example VisualC project included in the sources.
Logged
elfring
JkDefrag Hero
*****
Posts: 114


View Profile
« Reply #16 on: October 07, 2007, 09:15:21 pm »

Quote from: "jeroen"
Yes, I can imagine that. But as I said, with and without this switch in my Makefile the results are bit for bit the same.

Well, I just try to remind us that there is the danger that something will go wrong because of a missing preprocessor symbol. An API contract might be violated. Can software be developed in a way to guarantee its safety?

Quote from: "jeroen"
Not true. Just try it, it works like a charm. There is an example VisualC project included in the sources.

I know - it has got the same open issue (no option for a dynamic import) as the old Makefile. I've updated it for my source code branch.
I sent you my proposed changes. Are you going to accept any patches from this feedback?
Logged
jaben
JkDefrag Junior
**
Posts: 7


View Profile
« Reply #17 on: October 08, 2007, 10:01:05 pm »

2 items on this...

1) I agree that this is very overengineered.
2) C++ may need the DLL doe to the difference in the licensing... I cannot use the original if I want to distribute the ending app without also distributing my code (which I am sometimes prohibited from doing) for some clients).
Logged


-jaben
elfring
JkDefrag Hero
*****
Posts: 114


View Profile
« Reply #18 on: October 09, 2007, 12:07:22 am »

Quote from: "jeroen"
But as I said, with and without this switch in my Makefile the results are bit for bit the same.

It is true at the moment. - I prefer an approach where I can be sure that the required parameters were passed to all tools in the software build process to achieve the correct result.
Logged
jeroen
Administrator
JkDefrag Hero
*****
Posts: 7155



View Profile WWW
« Reply #19 on: October 09, 2007, 01:40:21 am »

Quote from: "elfring"
Are you going to accept any patches from this feedback?

I have not had time yet to look at them. At the moment all my free time is consumed by answering questions here on the forum.
Logged
elfring
JkDefrag Hero
*****
Posts: 114


View Profile
« Reply #20 on: October 09, 2007, 04:18:41 am »

The parameter /LD is the required switch for the compiler (and indirect also for the linker) to mark a source file for DLL usage.
Quote from: "jaben"
1) I agree that this is very overengineered.

Would you like to contribute a wording for the Makefile that does not look overengineered with all recommended markers?
Logged
jaben
JkDefrag Junior
**
Posts: 7


View Profile
« Reply #21 on: October 10, 2007, 04:39:04 pm »

You seem like a very knowledable person about makefiles (Let me also say that I dont use them a lot).  I am confused since I always thought engineering started with a clear concise problem statement...  It seems to me that you have proposed lots of solutions to problems that are very nebulous and therefore mostly unknown to me.  I don't understand the reason that you feel that you need a new makefile.
Logged


-jaben
elfring
JkDefrag Hero
*****
Posts: 114


View Profile
« Reply #22 on: October 10, 2007, 10:04:14 pm »

Quote from: "jaben"
It seems to me that you have proposed lots of solutions to problems that are very nebulous and therefore mostly unknown to me.  I don't understand the reason that you feel that you need a new makefile.

I try once more to explain my reasoning.
1. The specification /LD is missing for the DLL compilation. Now there are different opinions if and when effects by a missing compiler parameter will be noticed in binary object and executable files.
2. The source files "JkDefragLib.cpp" and "ScanNtfs.cpp" must be compiled with the same and specific parameter set for DLL generation. The resulting file "ScanNtfs.obj" must not be reused for the link step to produce "JkDefrag.exe".
=> The Makefile structure should be adjusted.
Logged
jeroen
Administrator
JkDefrag Hero
*****
Posts: 7155



View Profile WWW
« Reply #23 on: October 10, 2007, 11:48:23 pm »

Quote from: "elfring"
1. The specification /LD is missing for the DLL compilation.

You are wrong. Please try the DLL. It works perfectly.
Logged
elfring
JkDefrag Hero
*****
Posts: 114


View Profile
« Reply #24 on: October 11, 2007, 01:27:16 pm »

Quote from: "jeroen"
It works perfectly.

... until missing compiler switches will result in unsupported requirements for DLL generation. How likely can it be noticed that an incomplete parameter set for the compilation might be the source of unexpected effects?
Logged
jaben
JkDefrag Junior
**
Posts: 7


View Profile
« Reply #25 on: October 11, 2007, 07:28:20 pm »

Has this happened to you?  

What compiler are you using?  

When I compiled the DLL with VS'05 it seems to work fine.  I did remove the memory leak of course.
Logged


-jaben
Lexar
JkDefrag Hero
*****
Posts: 91


View Profile
« Reply #26 on: January 28, 2008, 02:40:28 am »

Looks like the VC++ solution needs updating, to include ScanFat.h and ScanFat.cpp for each project.
Logged
Pages: 1 [2]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.5 | SMF © 2006-2008, Simple Machines LLC Valid XHTML 1.0! Valid CSS!