Mixing Visual Studio 6 with Visual Studio .NET

Hi All -

I fully expect the answer to this to be "why would you even ask this
question"; so, donning my flame retardant underwear :-) ....

We have a product that is built (compiled and linked) using Visual
Studio 6. In that product, we provide a facility for our end users to
construct their own add-on DLLs.

One of our customers has approached us with a requirement that the
add-on DLLs be built using Visual Studio .NET. Their corporate IT
department has standardized on the .NET development platform and will
not allow anyone in the company to install VS6.

The entry point interfaces between our product and the add-on DLLs are
all declared as 'extern "c" ... APIENTRY', so we shouldn't have a
basic call interface problem.

However, the parameters we are passing to those interfaces are MFC
objects such as CString and  CArray and classes containing some of
those. Since VS6 and VS.NET don't implement those objects the same
way, we have a problem.

It looks to me like we have three alternatives:

1) Build our product using .NET;

2) Find a way for the customers to build their DLLs using VS6;

3) Stop sending MFC objects across the call interface.

I'm partial to (3), but another one of our developers is not.

So, I'm looking to see if anyone has a fourth idea.

Thanks for your help!

--- tom
tom allebrandi
tom@ytram.com
0
Tom3960 (4)
2/17/2004 6:30:18 PM
vc.mfc 33608 articles. 0 followers. Follow

3 Replies
458 Views

Similar Articles

[PageSpeed] 26

1. is the "easy" solution for the customer. Painful for you because the IDE sucks, but
easy for the customer.

2. You are fighting a customer's IT department. Remember these are populated largely by
people who love to control other people by applying absurd standards which fly in the face
of common sense (one client I have has an IT depart that is (a) ubelievably concerned
about security and (b) mandates the use of FAT32 on all NT systems. Do you see fundamental
stupidity at work here...?). Lots of luck, but probably impossible.

3. This could be really painful. It means you have to rewrite all your DLLs to not use
MFC, which could impose a lot of problems (unless you are only passing CStrings as
LPCTSTRs, but that seems too optimistic a scenario).

The question is, since I think (2) is impossible, you are left with (1) and (3). The
problem with (3) is that you incur a lot of long-term development costs (losing MFC
flexibility), short term costs (converting and testing the DLLs), and very little gain
except the continued happiness of one customer. (1) may be the best long-term solution,
even if you only do the builds occasionally in VS7, because people without good taste are
abandoning VS6, or for good solid technical reasons must move to VS7. Eventually we will
be in a VS7 world, so (1) will have to be done anyway, so why not do it now? [My hope is
that a decent VS interface will be out before I am forced to abandon VS6, but for now I
have only one client who uses it because of serious technical reasons--features in VS7
that do not exist in VS6 are essential to their product]. Besides, it is better to
discover any problems in the VS7 build when you have only one customer making the request,
instead of having to enter panic mode when a majority of customers suddenly require it
Right Now No Kidding!
					joe



On Tue, 17 Feb 2004 13:30:18 -0500, Tom Allebrandi <Tom@Ytram.Com> wrote:

>Hi All -
>
>I fully expect the answer to this to be "why would you even ask this
>question"; so, donning my flame retardant underwear :-) ....
>
>We have a product that is built (compiled and linked) using Visual
>Studio 6. In that product, we provide a facility for our end users to
>construct their own add-on DLLs.
>
>One of our customers has approached us with a requirement that the
>add-on DLLs be built using Visual Studio .NET. Their corporate IT
>department has standardized on the .NET development platform and will
>not allow anyone in the company to install VS6.
>
>The entry point interfaces between our product and the add-on DLLs are
>all declared as 'extern "c" ... APIENTRY', so we shouldn't have a
>basic call interface problem.
>
>However, the parameters we are passing to those interfaces are MFC
>objects such as CString and  CArray and classes containing some of
>those. Since VS6 and VS.NET don't implement those objects the same
>way, we have a problem.
>
>It looks to me like we have three alternatives:
>
>1) Build our product using .NET;
>
>2) Find a way for the customers to build their DLLs using VS6;
>
>3) Stop sending MFC objects across the call interface.
>
>I'm partial to (3), but another one of our developers is not.
>
>So, I'm looking to see if anyone has a fourth idea.
>
>Thanks for your help!
>
>--- tom
>tom allebrandi
>tom@ytram.com

Joseph M. Newcomer [MVP]
email: newcomer@flounder.com
Web: http://www.flounder.com
MVP Tips: http://www.flounder.com/mvp_tips.htm
0
newcomer (15973)
2/17/2004 7:05:48 PM
I like the idea of not passing MFC objects around.  If you don't want to
take that big of a hit though.  Maybe you could have entry points that take
CString (for backward compatibility) and write some new ones that take
LPCTSTR's for newer customers working on newer platforms.

Then, the CString version of your API would just call the LPCTSTR version
(or vica-versa) if it makes sense to do so.

"Tom Allebrandi" <Tom@Ytram.Com> wrote in message
news:9im430l7oig19oki5o5jj9l13q1pbqtgjr@4ax.com...
> Hi All -
>
> I fully expect the answer to this to be "why would you even ask this
> question"; so, donning my flame retardant underwear :-) ....
>
> We have a product that is built (compiled and linked) using Visual
> Studio 6. In that product, we provide a facility for our end users to
> construct their own add-on DLLs.
>
> One of our customers has approached us with a requirement that the
> add-on DLLs be built using Visual Studio .NET. Their corporate IT
> department has standardized on the .NET development platform and will
> not allow anyone in the company to install VS6.
>
> The entry point interfaces between our product and the add-on DLLs are
> all declared as 'extern "c" ... APIENTRY', so we shouldn't have a
> basic call interface problem.
>
> However, the parameters we are passing to those interfaces are MFC
> objects such as CString and  CArray and classes containing some of
> those. Since VS6 and VS.NET don't implement those objects the same
> way, we have a problem.
>
> It looks to me like we have three alternatives:
>
> 1) Build our product using .NET;
>
> 2) Find a way for the customers to build their DLLs using VS6;
>
> 3) Stop sending MFC objects across the call interface.
>
> I'm partial to (3), but another one of our developers is not.
>
> So, I'm looking to see if anyone has a fourth idea.
>
> Thanks for your help!
>
> --- tom
> tom allebrandi
> tom@ytram.com


0
Leo
2/19/2004 2:06:02 AM
In article news:<9im430l7oig19oki5o5jj9l13q1pbqtgjr@4ax.com>, Tom 
Allebrandi wrote:
> We have a product that is built (compiled and linked) using Visual
> Studio 6. In that product, we provide a facility for our end users to
> construct their own add-on DLLs.
> 
> One of our customers has approached us with a requirement that the
> add-on DLLs be built using Visual Studio .NET.

Inevitably ...

> It looks to me like we have three alternatives:
> 
> 1) Build our product using .NET;
> 
> 2) Find a way for the customers to build their DLLs using VS6;
> 
> 3) Stop sending MFC objects across the call interface.

Um.

4) write a wrapper (in VC6) that will allow your application to call an 
add-in DLL through a pure C interface (which you will have to define 
and publish). Your customers can then use VC7.1 (or any other 
compiler/language that can generate a DLL) to write a DLL that 
implements the pure C interface, and your application can call it 
through the wrapper.

5) As above, but require the customer to implement the add-on using COM 
interfaces.

Cheers,
 Daniel.
 

0
wastebasket (364)
2/19/2004 2:50:31 PM
Reply:

Similar Artilces:

FRx 6.7 and Windows 2003
Hi, I am trying to install FRx 6.7 on a Windows 2003 server. But I am not able install this. In Techknowledge, it says FRx 6.7 is not compatible with Windows 2003. Does anyone have any idea? Regards, Ani you can actually install FRx 6.7 in Windows 2003, only there are components not properly registered in the registry. Our workaround is to apply the service pack for 6.7. Hope this helps. "Ani" wrote: > Hi, > > I am trying to install FRx 6.7 on a Windows 2003 server. But I am not able > install this. In Techknowledge, it says FRx 6.7 is not compatible with >...

How to custom draw the scroll bar of CTreeCtrl in vc++6?
I want to remove the CTreeCtrl's horizontal scroll bar,and custom draw the vertical scroll bar. Could anybody tell me some tip about this? Thanks a lot. I had solve this problem, only need the follow code. #define TVS_NOSCROLL 0x8000 and I can use this style to create a CTreeCtrl which had no horz scrollbar. "L.J.S" <bconline2002@hotmail.com> д���ʼ� news:eJqcurIeFHA.132@TK2MSFTNGP10.phx.gbl... > I want to remove the CTreeCtrl's horizontal scroll bar,and custom draw > the vertical scroll bar. > Could anybody tell me some tip about this? > >...

.Net 2.0 C# Web Redirect to Login.aspx after some time span
Hi, In my .Net 2.0 C# Web pages, if the User has the admin privilege, then after login, it will redirect to the admin.aspx. However, we would like the admin.aspx to have the functionality that after some time span, e.g, 600 seconds, it will logout the admin user and go to the Login.aspx. We've already used the ICallbackEventHandler in the admin.aspx. How do I do that? Thanks for help. Jason ...

adding button on edit.aspx and calling external .net web service in event handler
Hi, In the case section in Microsoft CRM Server if I open through web site in iis,I go to the edit.aspx and try adding a button server control or html control button,asp.net control addition gives error,because perhaps the formbase is a custom control refrenced through assembly,so I am looking to add a button on the page from where I can call a web service to send a fax,is it possible through isv config file,this is my first day in office with this server,I get errors in the case screen when i add aspx button to edit.aspx,the whole form seems to be made from 3 custom controls thru 3 assembly ...

Exception while exporting data from .net to excel 2003 using sqlse
Hai Application : C#.Net, Windows application BackEnd : SqlServer2000 Excel : Ms-Excel 2003 We have a situation where our data is not exporting from C# windows application to Ms-Excel 2003.we have found that our application cannot load data into excel more than 911 characters in a cell,If i add 1 character more to this group of 911 characters,then i receive this "Exception from HRESULT:0x800A03EC" exception message.so please tell me do u can help me out with any solution,or any patches of microsoft will help us. ...

Blackberry enterprise server 3.6 to 4.0
Hi I am about to upgrade my BES server from 3.6 to 4.0. I need to know that software version on each one of my Blackberry devices. Is there a way of running a handheld audit from the BES? I dont really want to have to go to each one of my users and ask to see their Bberry!! Thanks P ...

XP visual styles problem
I have a project in VC++ 6 , to which I have added the usual code to make the dialog boxes appear in the current XP style ,i.e. a manifest.txt file in the res folder, IDR_MANIFEST RT_MANIFEST MOVEABLE PURE "res\Manifest.txt" in the rc2 file #define IDR_MANIFEST 1 #define RT_MANIFEST 24 in the resource.h file and InitCommonControls(); CWinApp::InitInstance(); in my InitInstance subroutine The problem I am having is for some pages in a property sheet where I have a lot of Combo boxes (40 of them), it is taking up to 4 seconds to draw the page when it is called for the first ...

Error 6:overflow
Hi, I am getting the above message when I try to run a Worksheet 401 on a newly created store and HQ environment. I have tried to run download items which was successful. Any ideas? thanks Kalvin ...

Personal.xls #6
When I open excel, whether it be a new worksheet or an existing one, my personal workbook automatically opens. It never used to so I may have somehow by accident set it to but now I can't figure out how to change it back so it doesn't open every time. Not sure if everyone has a personal.xls or if it is just something with the company I work for but this file opens all the time. Please help! Thanks in advance! It opens all the time and is usually used to store personal macros in. Only difference is that most people's personal.xls are hidden so you don't even notice i...

Networking Oddity
Put simply, I have an overly-elaborate home network. Devices are Beauty (i7-920,win 7 ultimate), Beast (i7-920, win xp), File Server (celeron, win xp), HTPC (q6600, win xp mce), 2 Iomega 1gB media drives, 2 networked printers, and occasionally a notebook (win vista home). All are connected through an 8-port Gigabit switch and from there to the internet through a netgear router and then an AT&T U-verse gateway. Since internet access in and out work fine on all computers we can probably safely forget about the router portions. All computers are using Windows Firewall. All of th...

ios::nocreate and VC++ 6.0 SP6 question
Hi, I have a class member function as follows : cReadFile(std::string* fileName) { inputFile = new std::ifstream(fileName->c_str(), std::ios::in/* | std::ios::nocreate*/); ownFile = true; }; My problem is that when I create the ifstream with a file name that does not exist, the create succeeds and my inputFile is set to a valid (ie non-NULL) pointer. I really need to detect when an input file does not exist but the compiler complains that ios::nocreate does not exist if I uncomment the remainder of the line. I have verified the file name really does identify a file that does no...

exchange 5.5/2003 with mixed mode 2003 domain public folders
Hi, I have recently completed some work for a potential customer, I am recommending that they in place upgrade their existing NT 4 domain to 2003 based on various reasons that I do not want to go into here. However, they also want their single exchange 5.5 org in the same domain to be migrated at the same time. This will be a mixed mode 5.5 to 2003 migration. At this stage the domain will be in mixed mode and will not support universal security groups. The customer uses public folders quitre heavily, I do not know the exact amount, but the user base is 2500 approx. They use distribution list...

Net Worth over Time
When I look at the Net Worth over Time Report the next 12 months, my balance stays the same. It seems Money does not forecast an Increase. However, when I look at the past it shows an increase. My Cash Flow forecast goes up with time. My houses are put in to show the amortirization. What could I be doing run or not have set up to see the future Net Worth Thanks in Advance -- Stephen and Erica Chenelle >Subject: Net Worth over Time >From: "Stephen & Erica Chenelle" schenelle@cox.net >Date: 2/29/2004 12:55 PM Eastern Standard Time >Message-id: <aIp0c.6319...

Fill Handle in .NET #2
I am trying to develop a code which handles copy/cut/paste functions in Excel within a macro. I am running into problems identifying when the fill handle is being used. Is there a cutcopy mode or other easy way to identify this? EggHeadCafe - Software Developer Portal of Choice WCF Workflow Services Using External Data Exchange http://www.eggheadcafe.com/tutorials/aspnet/3d49fa0d-a120-4977-842a-6dafb17b6d74/wcf-workflow-services-usi.aspx If you're trying to replicate dragging on the fill handle, you can look at ..filldown, .fillup, .fillright, .fillleft methods in VBA's help. If ...

what references to use for vb.net 2008 project and excel
I have office 2007. I am developing a vb.net 2008 project to work with office 2003 excel which will be on the users machine. Here is the question -- after reading tons of stuff about this. in my list of references in vb.net I have: Microsoft.interop version 11 and 12 (are these the PIA's) microsoft. office tools.excel version 8 and 9 Microsoft object lib 12 and 5 I am developing on the 2007 office machine for a project that will use office 2003 excel. I am only creating spreadsheets, reading and writing to spread sheets. I have read alot of conflicting info so h...

Linking Error: Using VC6 dll in VC.Net 2003
I wrote a program in MFC linking with another MFC extend DLL in VC6.0 before. But now I am writing another program in VC.Net2003 linking the same VC6 DLL said as before. While I compile my program, it said that Linking Error. I already set the project setting to link to that LIB. How should I do now? Thanks, Kevin Tang ...

quattro 6.0
My Quattro 6.0 program is corrrupt and i lost the installation discs but I have many spreadsheets saved in 6.0 with the extension wb2. Excel does not have a conversion for 6.0. Help ...

Forwarding Email #6
Hi All, Hope you can help me out. I have an employee that will be gone for an extended time. We would like to forward his email to an outside account. What is the easiest and best way to do this? thanks Harv On Mon, 11 Jul 2005 10:45:03 -0700, "Harv" <Harv@discussions.microsoft.com> wrote: >Hi All, Hope you can help me out. I have an employee that will be gone for >an extended time. We would like to forward his email to an outside account. >What is the easiest and best way to do this? > >thanks >Harv Create an Active Directory contact that is m...

WM_HSCROLL Message of MFC APPLICATION (.NET)
Dear All, 1. I would like to use WM_HSCROLL Mesaage in MFC for VC++ .NET,I used to use this message in VC++ 6.0 but i VC++ .NET i can not find the message,Pls share your experirnce with this. 2. Pls give me some URL that i can find documents of VC++ .NET like MFC Tutorial... TIA Chanthan Ken ...

How to do with xml file -> schema file (fuction i .NET)
I use a BulkLoad to import file.xml to my base MS Server 2000. To import this xml file I need schema file. Mayby you know how to do this file mechanicy f.g. mayby somebody have some script in .net who generate this schema. for any help Thanks ======== My xml file ================================= <ROOT> <Customers> <CustomerId>5555</CustomerId> <CompanyName>Jagoda1</CompanyName> <City>NY</City> </Customers> <Customers> <CustomerId>0200</CustomerId> <Comp...

Time Format #6
I'm having a problem adding together journey times. I have a start time (say 8:34:00) and an end time (say 10:23:00) and from this I calculate a journey time (1:49:00). I then add this journey time (using the sum function) across a number of different journeys giving me a total. This total is in some case in excess of 24 hours and Excel seems to revert to 0 at 24 hours and start the sum again. So for example I can see when I highlight the range that the total is 27:49:00 but the sum function returns 03:49:00. Any ideas? Cheers Lee Use a custom format: [hh]:mm:ss The []...

Outlook Express 6 SP1
I have a problem with OE6 SP1 on Win 98 SE (patched with all the latest fixes). OE will intermittenly stall when collecting Email from my POP3 accounts. Repeating the attempts - even after reboots will stall on apparently the same message. Support staff have been unable to idenitfy the issue - when they build an OE account pointing to my POP3 account they can download the very emails that my OE stalls on. I have turned off my spam filter and anti virus S/w - and still it salls. I have built a new account on my OE that geos direct to the POP3 server, and does even go through the virtual ser...

RMS 2.0 Mix & Match Discount Problem after SP1 Update
Yesterday, pre-update to SP1, the mix & match discount was working as it should. After the update this morning, it uses the "extended price" listed in the mix & match dialog box as a "per unit" price, instead of for the entire listed quantity. Example: Was: 1 lipstick is $8.00, 2 of any color is $6.99 for both. Now: 1 lipstick is $8.00, 2 of any color is $6.99 each. Any ideas? -- Stephanie Hapke Owner GeekGirl Consulting Saint Charles, MO ...

CCmdTarget::OnCmdMsg VC++6.0
I'm using service pack 5 or so. I've noticed that regarding an ON_UPDATE_COMMAND_UI handler of mine that I have tried to have selectively handle messages (using ContinueRouting()), I'm not seeing the message be passed to the base class' ON_UPDATE_COMMAND_UI handler. I've stepped through the MFC code, CCmdTarget::OnCmdMsg() (CMDTARG.CPP) and I've noticed that in the case of my update message a for loop is constructed in order to cycle through the message map table to try and find a handler to process the message. However when I look to the bottom of this for loop I s...

PHP pages with IIS 6
How to integered PHP in IIS without GDI errors in Internet explorer Thanks for advance FRANCOIS METAIS Sorry, this newsgroup is for questions about Access, the database product that's part of Office Professional. Your question should be reposted to a more appropriate newsgroup, such as microsoft.public.inetserver.iis -- Doug Steele, Microsoft Access MVP http://I.Am/DougSteele (no e-mails, please!) "fm" <fmetais@tdacermai.com> wrote in message news:uLKFr8WHIHA.5160@TK2MSFTNGP05.phx.gbl... > How to integered PHP in IIS without GDI errors in Internet explorer &...