Home | Blog | Software | Reviews and Features | Forum | Help | Donate | About us
topbanner_forum
  *

avatar image

Welcome, Guest. Please login or register.
Did you miss your activation email?

Login with username, password and session length
  • December 03, 2016, 07:40:38 AM
  • Proudly celebrating 10 years online.
  • Donate now to become a lifetime supporting member of the site and get a non-expiring license key for all of our programs.
  • donate

Last post Author Topic: Windows 7's Taskbar....Err.....Circle Dock for the DC Programming Contest  (Read 94545 times)

f0dder

  • Charter Honorary Member
  • Joined in 2005
  • ***
  • Posts: 9,029
  • [Well, THAT escalated quickly!]
    • View Profile
    • f0dder's place
    • Read more about this member.
    • Donate to Member
I will create a source-forge account to host the code since the whole solution is now around 40 megs with the icons I use for testing. I can't host this on wikidot because of file size limitations. I'll post a message when I get the source-forge account set up.
40 megs? That sounds like a lot! You should probably strip it down to only the source files etc. that's necessary to build, and perhaps a minimal set of images - keep the full image/icon set only in the binary release.

Oh, and make sure to clean out any temporary or auto-generated files, stuff like .pdb and .pch (dunno if those are used in dotNET projects?) can grow quite large.

Now I'm curious if a 64-bit Vista user will have the same problem...... Hmm. I'll have to wait and see.
Both versions crash on Vista64 as well.
- carpe noctem

VideoInPicture

  • Honorary Member
  • Joined in 2008
  • **
  • Posts: 467
    • View Profile
    • Circle Dock
    • Donate to Member
Oh, and make sure to clean out any temporary or auto-generated files, stuff like .pdb and .pch (dunno if those are used in dotNET projects?) can grow quite large.

Now I'm curious if a 64-bit Vista user will have the same problem...... Hmm. I'll have to wait and see.
Both versions crash on Vista64 as well.

I will make the source files as small as I can. We'll see what happens.

As for some good news, I think I figured out what was causing the appearance of questions mark images for Dormouse and the crashing for the crashing for the 64-bit users. I'm uploading Alpha 5 right now. I have tested it on Windows XP Professional SP2 with .Net 2.0 and it works fine now with none of the question marks showing up.

I'll post back when the upload is finished.
Author of Circle Dock: http://circledock.wikidot.com
Author of Video In Picture: http://videoinpicture.wikidot.com
Author of Webcam Signature: http://webcamsignature.wikidot.com
Author of Easy Unicode Paster: http://easyunicodepaster.wikidot.com

VideoInPicture

  • Honorary Member
  • Joined in 2008
  • **
  • Posts: 467
    • View Profile
    • Circle Dock
    • Donate to Member
Okay Everyone,
I think I might have figured out what was cause the crashes on 64-bit machines and the question marks for Dormouse. When Circle Dock references a file within it's own folder, it uses ".\" to signify that the file is within it's own folder. For example, if I wanted to reference an icon in the Circle Dock folder it would be ".\System\Icons\Some Icon.png". However, some systems cannot handle the ".\" shorthand and I must specify the full path in the arguments to create the images in the dock.

I tested this out on a Windows XP Professional SP2 machine with .Net 2.0 and I was able to replicat what Dormouse was getting and the error message that popped up looks suspiciously similar to the ones from the 64-bit machines.

Try Alpha 5 out and it should be better: http://circledock.wi...eDock0.9.2Alpha5.zip


Eric Wong
Author of Circle Dock: http://circledock.wikidot.com
Author of Video In Picture: http://videoinpicture.wikidot.com
Author of Webcam Signature: http://webcamsignature.wikidot.com
Author of Easy Unicode Paster: http://easyunicodepaster.wikidot.com

f0dder

  • Charter Honorary Member
  • Joined in 2005
  • ***
  • Posts: 9,029
  • [Well, THAT escalated quickly!]
    • View Profile
    • f0dder's place
    • Read more about this member.
    • Donate to Member
It's a good idea to always use fully-qualified paths when opening files - there's several things that can cause the current working directory to change, and then opening with relative paths break :)

PS: The file does not exist. for the new download URL.
- carpe noctem

VideoInPicture

  • Honorary Member
  • Joined in 2008
  • **
  • Posts: 467
    • View Profile
    • Circle Dock
    • Donate to Member
PS: The file does not exist. for the new download URL.

Fixed. It's working now.
Author of Circle Dock: http://circledock.wikidot.com
Author of Video In Picture: http://videoinpicture.wikidot.com
Author of Webcam Signature: http://webcamsignature.wikidot.com
Author of Easy Unicode Paster: http://easyunicodepaster.wikidot.com

f0dder

  • Charter Honorary Member
  • Joined in 2005
  • ***
  • Posts: 9,029
  • [Well, THAT escalated quickly!]
    • View Profile
    • f0dder's place
    • Read more about this member.
    • Donate to Member
PS: The file does not exist. for the new download URL.

Fixed. It's working now.
I'm still getting the "File does not exist" error when trying to download...
- carpe noctem

VideoInPicture

  • Honorary Member
  • Joined in 2008
  • **
  • Posts: 467
    • View Profile
    • Circle Dock
    • Donate to Member
The link works for me. Maybe the servers are updating their caches.

I've uploaded Circle Dock 0.9.2 Alpha 5 to this message so you can try downloading it here:

[attachmini=#][/attachmini]1
Author of Circle Dock: http://circledock.wikidot.com
Author of Video In Picture: http://videoinpicture.wikidot.com
Author of Webcam Signature: http://webcamsignature.wikidot.com
Author of Easy Unicode Paster: http://easyunicodepaster.wikidot.com

f0dder

  • Charter Honorary Member
  • Joined in 2005
  • ***
  • Posts: 9,029
  • [Well, THAT escalated quickly!]
    • View Profile
    • f0dder's place
    • Read more about this member.
    • Donate to Member
Weird - I still can't grab from the wikidot URL, even tried with wget to make sure I wasn't getting a cached copy of the error page. Anyway, I got the attached version from your post, and it still crashes.

But I'm sure we'll eventually be able to sort things out :)
- carpe noctem

VideoInPicture

  • Honorary Member
  • Joined in 2008
  • **
  • Posts: 467
    • View Profile
    • Circle Dock
    • Donate to Member
Weird - I still can't grab from the wikidot URL, even tried with wget to make sure I wasn't getting a cached copy of the error page. Anyway, I got the attached version from your post, and it still crashes.

But I'm sure we'll eventually be able to sort things out :)

Darn it. Well at least I know it works for 32-bit from some people that are using it now. I just need access to a 64-bit system somehow. Guess I better get cracking at that source-forge thing.
Author of Circle Dock: http://circledock.wikidot.com
Author of Video In Picture: http://videoinpicture.wikidot.com
Author of Webcam Signature: http://webcamsignature.wikidot.com
Author of Easy Unicode Paster: http://easyunicodepaster.wikidot.com

VideoInPicture

  • Honorary Member
  • Joined in 2008
  • **
  • Posts: 467
    • View Profile
    • Circle Dock
    • Donate to Member
RunInCompatibility.JPG1

Okay, something for the 64-bit users out there. Have you tried running it in a 32-bit compatibility mode by changing the settings in the Properties pop-up of the exe file?

I have set up a Source Forge account but it's going to need a few days to get approval. I'm trying to decode the 64-bit error messages I've seen here to see if I can understand the problem better.
Author of Circle Dock: http://circledock.wikidot.com
Author of Video In Picture: http://videoinpicture.wikidot.com
Author of Webcam Signature: http://webcamsignature.wikidot.com
Author of Easy Unicode Paster: http://easyunicodepaster.wikidot.com

VideoInPicture

  • Honorary Member
  • Joined in 2008
  • **
  • Posts: 467
    • View Profile
    • Circle Dock
    • Donate to Member
Nevermind about that compatiblity setting in the Properties panel. Someone has tried it and it didn't work.
Author of Circle Dock: http://circledock.wikidot.com
Author of Video In Picture: http://videoinpicture.wikidot.com
Author of Webcam Signature: http://webcamsignature.wikidot.com
Author of Easy Unicode Paster: http://easyunicodepaster.wikidot.com

f0dder

  • Charter Honorary Member
  • Joined in 2005
  • ***
  • Posts: 9,029
  • [Well, THAT escalated quickly!]
    • View Profile
    • f0dder's place
    • Read more about this member.
    • Donate to Member
Hm, I don't know if there's such a thing as 32-bit compatibility mode... at least not with the right-click property stuff. And I don't know if there's a way to tell the dotNET jitter to jit for 32bit instead of 64bit.

All I can see is that the crash happens in the CircleDock.MainForm constructor, near the end of the method... debugging dotNET code without source is a bit tedious :)
- carpe noctem

VideoInPicture

  • Honorary Member
  • Joined in 2008
  • **
  • Posts: 467
    • View Profile
    • Circle Dock
    • Donate to Member
Hm, I don't know if there's such a thing as 32-bit compatibility mode... at least not with the right-click property stuff. And I don't know if there's a way to tell the dotNET jitter to jit for 32bit instead of 64bit.

All I can see is that the crash happens in the CircleDock.MainForm constructor, near the end of the method... debugging dotNET code without source is a bit tedious :)

Can you program in C# and do you have Microsoft Visual C#? If you do, I can try setting up a special space somewhere for you to download it.
Author of Circle Dock: http://circledock.wikidot.com
Author of Video In Picture: http://videoinpicture.wikidot.com
Author of Webcam Signature: http://webcamsignature.wikidot.com
Author of Easy Unicode Paster: http://easyunicodepaster.wikidot.com

mouser

  • First Author
  • Administrator
  • Joined in 2005
  • *****
  • Posts: 36,405
    • View Profile
    • Mouser's Software Zone on DonationCoder.com
    • Read more about this member.
    • Donate to Member
Quote
I will create a source-forge account to host the code since the whole solution is now around 40 megs with the icons I use for testing. I can't host this on wikidot because of file size limitations. I'll post a message when I get the source-forge account set up.

Sourceforge is nice for that -- they are very generous with their space.

But DC would also be delighted to give you as much space as you want to host your stuff, just message me.

f0dder

  • Charter Honorary Member
  • Joined in 2005
  • ***
  • Posts: 9,029
  • [Well, THAT escalated quickly!]
    • View Profile
    • f0dder's place
    • Read more about this member.
    • Donate to Member
Can you program in C# and do you have Microsoft Visual C#? If you do, I can try setting up a special space somewhere for you to download it.
My experience with C# is limited, but the language syntax is similar enough to C++ that I don't have trouble reading it - and the dotNET framework seems to be reasonably easy to follow.

So yeah, I could probably help with debugging :)
- carpe noctem

VideoInPicture

  • Honorary Member
  • Joined in 2008
  • **
  • Posts: 467
    • View Profile
    • Circle Dock
    • Donate to Member
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.
Author of Circle Dock: http://circledock.wikidot.com
Author of Video In Picture: http://videoinpicture.wikidot.com
Author of Webcam Signature: http://webcamsignature.wikidot.com
Author of Easy Unicode Paster: http://easyunicodepaster.wikidot.com

VideoInPicture

  • Honorary Member
  • Joined in 2008
  • **
  • Posts: 467
    • View Profile
    • Circle Dock
    • Donate to Member
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.
Author of Circle Dock: http://circledock.wikidot.com
Author of Video In Picture: http://videoinpicture.wikidot.com
Author of Webcam Signature: http://webcamsignature.wikidot.com
Author of Easy Unicode Paster: http://easyunicodepaster.wikidot.com

VideoInPicture

  • Honorary Member
  • Joined in 2008
  • **
  • Posts: 467
    • View Profile
    • Circle Dock
    • Donate to Member
Alright, the source code for Circle Dock 0.9.2 Alpha 6 is up at http://ericw.dcmembe...lpha6_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
Author of Circle Dock: http://circledock.wikidot.com
Author of Video In Picture: http://videoinpicture.wikidot.com
Author of Webcam Signature: http://webcamsignature.wikidot.com
Author of Easy Unicode Paster: http://easyunicodepaster.wikidot.com

f0dder

  • Charter Honorary Member
  • Joined in 2005
  • ***
  • Posts: 9,029
  • [Well, THAT escalated quickly!]
    • View Profile
    • f0dder's place
    • Read more about this member.
    • Donate to Member
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 :)
- carpe noctem

VideoInPicture

  • Honorary Member
  • Joined in 2008
  • **
  • Posts: 467
    • View Profile
    • Circle Dock
    • Donate to Member
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 :)

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.
Author of Circle Dock: http://circledock.wikidot.com
Author of Video In Picture: http://videoinpicture.wikidot.com
Author of Webcam Signature: http://webcamsignature.wikidot.com
Author of Easy Unicode Paster: http://easyunicodepaster.wikidot.com

VideoInPicture

  • Honorary Member
  • Joined in 2008
  • **
  • Posts: 467
    • View Profile
    • Circle Dock
    • Donate to Member
BTW, which other problems did you encounter?
Author of Circle Dock: http://circledock.wikidot.com
Author of Video In Picture: http://videoinpicture.wikidot.com
Author of Webcam Signature: http://webcamsignature.wikidot.com
Author of Easy Unicode Paster: http://easyunicodepaster.wikidot.com

Ti133700N

  • Participant
  • Joined in 2008
  • *
  • Posts: 4
    • View Profile
    • Donate to Member
I confirm, by setting Platform Target to x86 I was able to compile and execute CircleDock on my Windows Vista Ultimate 64-bit.

CircleDock64Bits.jpg

Can't wait to see the next improvements. If you need assistance to test some functionalities, I will gladly help.

VideoInPicture

  • Honorary Member
  • Joined in 2008
  • **
  • Posts: 467
    • View Profile
    • Circle Dock
    • Donate to Member
I confirm, by setting Platform Target to x86 I was able to compile and execute CircleDock on my Windows Vista Ultimate 64-bit.
Can't wait to see the next improvements. If you need assistance to test some functionalities, I will gladly help.

Welcome aboard! I'll try to compile an x86 version on my computer and post that version up for now so that people with 64-bit computers can test it while I rework the hook to make it run on 64-bit without x86 compilation.
Author of Circle Dock: http://circledock.wikidot.com
Author of Video In Picture: http://videoinpicture.wikidot.com
Author of Webcam Signature: http://webcamsignature.wikidot.com
Author of Easy Unicode Paster: http://easyunicodepaster.wikidot.com

Ti133700N

  • Participant
  • Joined in 2008
  • *
  • Posts: 4
    • View Profile
    • Donate to Member
Welcome aboard! I'll try to compile an x86 version on my computer and post that version up for now so that people with 64-bit computers can test it while I rework the hook to make it run on 64-bit without x86 compilation.

Thanks, I've noticed that you are already planning to translate your app in other languages than English so I've included a French.ini file with this post in case you wanted to test it. I'm french canadian so I guess I could help with the french translation. Sometimes the french characters can cause problems so I thought it would be a good idea to test it early in the development stage.

VideoInPicture

  • Honorary Member
  • Joined in 2008
  • **
  • Posts: 467
    • View Profile
    • Circle Dock
    • Donate to Member
Welcome aboard! I'll try to compile an x86 version on my computer and post that version up for now so that people with 64-bit computers can test it while I rework the hook to make it run on 64-bit without x86 compilation.

Thanks, I've noticed that you are already planning to translate your app in other languages than English so I've included a French.ini file with this post in case you wanted to test it. I'm french canadian so I guess I could help with the french translation. Sometimes the french characters can cause problems so I thought it would be a good idea to test it early in the development stage.

Thanks, that super. I haven't even told anybody how to translate it yet. If you want to test out the French on your system, go into the Settings Folder -> Config.ini and under [Language], change the path to your file.

I'll be sure to give people credit for their contributions.
Author of Circle Dock: http://circledock.wikidot.com
Author of Video In Picture: http://videoinpicture.wikidot.com
Author of Webcam Signature: http://webcamsignature.wikidot.com
Author of Easy Unicode Paster: http://easyunicodepaster.wikidot.com