Please be gentle - this is my first post and as will be obvious, I don't know what I'm doing! And apologies if this is a repost as my first attempt didn't seem to appear.

I'm very new to .NET having downloaded VB Express (2010) just a few days ago. I'm running this under Windows XP and using Office 2007.

I'm trying to create a DLL that I can call from Excel VBA programs as VBA is too slow for my calculations. So far I haven't succeeded in creating a DLL that I can using in Excel VBA.
What I have managed to do is:
1) Create a class in VB Express (2010), build it as a DLL and then use this class in another VB project. This worked smoothly - I just had to add a reference to the 2nd project which used the DLL
2) I have also managed to create a DLL in VC++ Express (2010) and call this from Excel VBA. I never even had to add the DLL as a reference. I simply had a line of code in VBA
Code:
Declare Function timestwo Lib "D:\TestC++NET\TestCDLL\Debug\testCdll.dll" _
      Alias "_timestwo@8" (ByVal x As Double) As Double
In this case, the DLL contained just a single a function, not a class.

When I try and add the DLL I created in (1) as a reference to VBA, I get an error in the VBA IDE which says "Can't add a reference to the specified file." (This seems a little odd because I had no problem adding the DLL as a reference to another VB 2010 project.)

I've done quite a bit of digging on the web and haven't found a solution. I do see references to the fact that I have to register the DLL. When I run Regsvr32 I get the error message "MyDLL.dll was loaded but the DLLServerRegister entry point was not found. This file can not be loaded."

So....how do I go about creating a DLL that can actually be "seen" and used by VBA? I'd prefer not to have to register the DLL - but if I do have to, I can live with this.

Any help, hints, tips or tricks would be gratefully appreciated!