ATTENTION: You are viewing a page formatted for mobile devices; to view the full web page, click HERE.

DonationCoder.com Software > Circle Dock

Windows 7's Taskbar....Err.....Circle Dock for the DC Programming Contest

<< < (14/28) > >>

VideoInPicture:
Talking to mouser right now about getting some hosting space... Hopefully we can resolve the 64-bit issue within a couple of days. When you see my code, please excuse some of the messiness and uncommented code. I was working on it up to when I found out Lifehacker was covering it and people started e-mailing me. But, I promise to eventually get the code commented because I think this is very important.

VideoInPicture:
Hey f0dder, you should download Microsoft Visual C# Express at http://www.microsoft.com/express/vcsharp/ so you are ready when we get the files up.

VideoInPicture:
Alright, the source code for Circle Dock 0.9.2 Alpha 6 is up at http://ericw.dcmembers.com/CircleDock0.9.2Alpha6_SourceCode.zip. This is a new link and isn't on the Circle Dock website yet. It is a 21 meg download.

In this version, I've added unhandled exception handlers that will provide detailed error messages. Maybe that will help with debugging.

Just download the file, unzip and open the CircleDock.sln file with C# and the whole project will be loaded. To debug it, press F5 in Visual C# Express or click on the green arrow in the toolbar menu.

Hopefully f0dder or someone with a 64-bit machine can get rid of the 64-bit incompatibility.


Eric Wong

f0dder:
OK, I've taken a cursory look at the source. The crash happens on line 151 in MainForm.cs, upon a call to StartHook(this.Handle); - my guess is that this hook is in a 32bit native DLL, which obviously can't be loaded when dotNET jits CircleDock for a 64bit target CPU. By creating a build configuration for "x86" (instead of "any CPU") and copying some files around manually, I was able to get CircleDock running (although there's some other problems, but we'll focus on those later).

Now, it's showing that I'm not exactly super familiar with dotNET :-[ - I have trouble seeing how the various DLL files are generated; does Orbit.Hook.dll , for instance, have corresponding source files in the project? I only really see it referenced in the source via a DllImport statement, so I'm wondering :)

VideoInPicture:
OK, I've taken a cursory look at the source. The crash happens on line 151 in MainForm.cs, upon a call to StartHook(this.Handle); - my guess is that this hook is in a 32bit native DLL, which obviously can't be loaded when dotNET jits CircleDock for a 64bit target CPU. By creating a build configuration for "x86" (instead of "any CPU") and copying some files around manually, I was able to get CircleDock running (although there's some other problems, but we'll focus on those later).

Now, it's showing that I'm not exactly super familiar with dotNET :-[ - I have trouble seeing how the various DLL files are generated; does Orbit.Hook.dll , for instance, have corresponding source files in the project? I only really see it referenced in the source via a DllImport statement, so I'm wondering :)
-f0dder (August 18, 2008, 06:31 PM)
--- End quote ---

Yes, you appear to be right, StartHook(this.Handle); is a 32-bit DLL. It was a component I took from the Orbit Dock project (a circular dock that was abandoned a few years ago before completion). The Orbit Dock project files I have are quite unstable and I don't think it was meant for 64-bit OS's. This function resides in the Orbit.Hook.dll file as you have mentioned. It is basically used for hooking the middle mouse button to toggle the visiblity of the dock. It is written is C++, which doesn't really flow with the rest of the project because I think it was written by someone else than the author of Orbit Dock.

However, I have a solution, we can just remove Orbit.Dock.dll altogether and all the hooks currently in Circle Dock and replace them with a C# hook for the mouse. In the source code you have, there is a project called "Global Hook" and a file called "UserActivityHook.cs". We can easily implement the mouse hook with it. I will work on an Alpha 7 with this.

For the DLL files in the Debug folder used to execute the program, I just manually copied the Orbit.XXXXX.dll ones and the AMS.Profile.dll because they were already built in other projects. The GlobalMouseKeyboardHook.dll is generated by the Circle Dock solution from the "Global Hook" project when you build the solution. The dll files you see in the main Circle Dock project folder is what the IDE references and it will complain if they are not there. They are not used for execution.

Can you tell me the steps you took in compiling the "x86" version of Circle Dock and which files you moved around?


P.S. If you look in the License.txt file in the main Circle Dock folder, you will find the links to the AMS and Orbit Dock projects.

Navigation

[0] Message Index

[#] Next page

[*] Previous page

Go to full version