473,320 Members | 1,900 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,320 software developers and data experts.

questions on copyright dealing with MS libs

Suppose I got really mad at GDI+ one day and wanted to rewrite the
System.Drawing.dll to use my own drawing framework. What's the
procedure for creating a project for this?

I can use the .Net Reflector to create myself a project with the
existing code. Suppose I start with that and gut all the public
methods and rip out all the internal and private stuff. Am I still
screwed by copyright laws at this point? I assume there must be a
document somewhere with a formal definition of all those public
methods. (The Mono folk talk about it all over the place but they
don't have a link to it anywhere.) If those methods represent a
standard of some kind they must not be proprietary material, true?

If I include the method documentation in my reflector output am I
doubly screwed or am I allowed to use those exact comments in my own
implementation of that library?

If I simply use the dll in my other commercial products rather than
making it a product of its own -- are the copyright laws more lenient
in that case?
Aug 29 '08 #1
3 1075
On Thu, 28 Aug 2008 20:41:06 -0700, not_a_commie <no********@gmail.com>
wrote:
Suppose I got really mad at GDI+ one day and wanted to rewrite the
System.Drawing.dll to use my own drawing framework. What's the
procedure for creating a project for this?
If you're serious, you need an I.P. lawyer.

That said, the short answer: broadly speaking, you can replicate the API
from scratch if you like, but you can't use Microsoft's code as a starting
point. "Clean room" reimplementations are generally considered okay,
actually using the original implementation as a reference, not okay.

Note that a typical "clean room" technique is to have one team do a
thorough reverse-engineer of the original implementation, to come up with
a detailed specification of expected behaviors. Then another team does
the actual implementation. EULA's commonly prohibit reverse engineering,
but it remains to be seen whether a EULA would hold up in court, never
mind a specific clause like that.
[...]
If I simply use the dll in my other commercial products rather than
making it a product of its own -- are the copyright laws more lenient
in that case?
I doubt it. I'd expect most, if not all, of the same rules to apply.

But again, only a skilled lawyer can really answer the questions for you.

Pete
Aug 29 '08 #2
IANAL, however...

On Aug 29, 7:41*am, not_a_commie <notacom...@gmail.comwrote:
Suppose I got really mad at GDI+ one day and wanted to rewrite the
System.Drawing.dll to use my own drawing framework. What's the
procedure for creating a project for this?

I can use the .Net Reflector to create myself a project with the
existing code. Suppose I start with that and gut all the public
methods and rip out all the internal and private stuff. Am I still
screwed by copyright laws at this point?
It depends on the jurisdiction you're in, but in general - yes, you
are, because the resulting code, even with all the meat removed, is
still derived work. It doesn't have anything to do with how much you
remove, and everything with how you arrived to that point. If you,
say, take MSDN, and hand-code the classes from its descriptions, then
it will be clean code and not derived work - _even if you arrive to
exactly the same code, byte-wise_. Using reflection to scan the
assemblies and regen their API is somewhere in the middle, and you'd
certainly need a lawyer's advice if you're going to do that.

Having said that, perhaps you could just take Mono implementation, and
use that? It uses Cairo, which, as I understand, is implemented on top
of plain GDI, so it should be accelerated, unlike GDI+.
Aug 29 '08 #3
I must say, I do love the toungue in cheek answers of the lovely people who
have answered so politely while peeing themselves with laughter.

You do understand that System.Drawing is just a wrapper around an unmanaged
DLL that you can't decompile with Reflector don't you?

If you're going to make your own drawing framework. Why not be original and
base it on something radical like OpenGL or some such system?

In fact, if you're really good you could rip-off that new-fangled WPF thing
everyone's going on about. I hear it's pretty good.

--
--
Bob Powell [MVP]
Visual C#, System.Drawing

Find great Windows Forms articles in Windows Forms Tips and Tricks
http://www.bobpowell.net/tipstricks.htm

Answer those GDI+ questions with the GDI+ FAQ
http://www.bobpowell.net/faqmain.htm

All new articles provide code in C# and VB.NET.
Subscribe to the RSS feeds provided and never miss a new article.
"not_a_commie" <no********@gmail.comwrote in message
news:5f**********************************@p10g2000 prf.googlegroups.com...
Suppose I got really mad at GDI+ one day and wanted to rewrite the
System.Drawing.dll to use my own drawing framework. What's the
procedure for creating a project for this?

I can use the .Net Reflector to create myself a project with the
existing code. Suppose I start with that and gut all the public
methods and rip out all the internal and private stuff. Am I still
screwed by copyright laws at this point? I assume there must be a
document somewhere with a formal definition of all those public
methods. (The Mono folk talk about it all over the place but they
don't have a link to it anywhere.) If those methods represent a
standard of some kind they must not be proprietary material, true?

If I include the method documentation in my reflector output am I
doubly screwed or am I allowed to use those exact comments in my own
implementation of that library?

If I simply use the dll in my other commercial products rather than
making it a product of its own -- are the copyright laws more lenient
in that case?
Aug 29 '08 #4

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

4
by: Google Mike | last post by:
Supposedly PHP-GTK is the ticket one can take to create cross-platform PHP scripts that load a standalone GUI application with widgets, and then everything else you know about PHP can work in the...
7
by: Johnny | last post by:
June 2, 2005 Greetings, I have a whole lot of questions that all have to do with the same topic: Width. By "width" I mean how wide a particular Web page is, how wide a table is, how wide a...
159
by: petantik | last post by:
Are there any commercial, or otherwise obfuscators for python source code or byte code and what are their relative advantages or disadvantages. I wonder because there are some byte code protection...
13
by: Zellan | last post by:
I am starting a small business designing Access databases and have a potential client where several different users would be able to use the same database I have designed. I want to know what I...
6
by: Dennis D. | last post by:
1. Planet-Source-Code has a 'compatibility filter' that asks for a e-mail/password, which then transfers the user to another site, rent-a-coder. This seems deceptive to me. At any rate, there is no...
3
by: FAQ server | last post by:
----------------------------------------------------------------------- FAQ - What questions are off-topic for clj? ----------------------------------------------------------------------- The...
1
by: FAQ server | last post by:
----------------------------------------------------------------------- FAQ Topic - What questions are off-topic for clj? ----------------------------------------------------------------------- ...
77
by: Hans Schneider | last post by:
1. in the prg bellow what vars are stored on stack, heap, data segment? int i; void main() { int j; int *k = (void *)malloc(1); }
1
by: Raman | last post by:
Hi All, I have two libs (libFirst.a and libSecond.a). Both libs contains a common function func(). Now I want to link an application "app" with these two libs as gcc -o app libFirst.a...
0
by: Vimpel783 | last post by:
Hello! Guys, I found this code on the Internet, but I need to modify it a little. It works well, the problem is this: Data is sent from only one cell, in this case B5, but it is necessary that data...
0
by: jfyes | last post by:
As a hardware engineer, after seeing that CEIWEI recently released a new tool for Modbus RTU Over TCP/UDP filtering and monitoring, I actively went to its official website to take a look. It turned...
0
by: ArrayDB | last post by:
The error message I've encountered is; ERROR:root:Error generating model response: exception: access violation writing 0x0000000000005140, which seems to be indicative of an access violation...
1
by: PapaRatzi | last post by:
Hello, I am teaching myself MS Access forms design and Visual Basic. I've created a table to capture a list of Top 30 singles and forms to capture new entries. The final step is a form (unbound)...
1
by: CloudSolutions | last post by:
Introduction: For many beginners and individual users, requiring a credit card and email registration may pose a barrier when starting to use cloud servers. However, some cloud server providers now...
1
by: Defcon1945 | last post by:
I'm trying to learn Python using Pycharm but import shutil doesn't work
1
by: Shællîpôpï 09 | last post by:
If u are using a keypad phone, how do u turn on JavaScript, to access features like WhatsApp, Facebook, Instagram....
0
by: Faith0G | last post by:
I am starting a new it consulting business and it's been a while since I setup a new website. Is wordpress still the best web based software for hosting a 5 page website? The webpages will be...
0
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 3 Apr 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome former...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.