SteveDB 0 Newbie Poster

Ancient D,
Yes, I have found that out. :-/

As you must have found out, the exit(0) function exits the entire program, not just the function in which it appears.

It would appear you have the wrong notion about how to return from a function in C or C++

You surmise correctly.... I have plenty of wrong notions about C++. More so now than I'd thought I had before. :?: I barely eeeked though my two runs through C++ at college. Strike it up to playing with tonka trucks as a child, back when computers were the size of your typical house. Programs were punch cards, and my dad bought home one of the very first IC chips when I was 7. It looked to me like a black, plastic caterpillar. In fact, the original Star Trek came out that year.

int foo1()
// This function will return the value of an integer
{
    // do something

    // now return the integer
    return 1;
}

// or to exit a function that has no return value
void foo2()
{
    // do something

    return;  // this line is optional.  It can be omitted in void functions
}

int main()
{
     // get the return value from a function that returns an integer, such as foo1()

     int retvalue = foo1();

     // call a void function
     foo2();
}

Its not possible in standarc c++ to capture the <Esc> key. You have to use something nonstandard such as functions in …

SteveDB 0 Newbie Poster

My previous step hs been resolved.
Now it's on to the next component.
As previously stated, I am using a do-while loop with a switch-case.
I've figured out how to state the functions that I'm calling to, and it now allows me past the main menu.
Once I'm in however, it will not allow me back out to the main menu.
For those who've not read my earlier posts, this whole thing worked exactly as expected in VS 6 C++, and Borland's C++ back when I'd first written it in 1999 (with Borland), and 2001(with VS6 C++). It wasn't until the change from Fat32 to NTFS that it failed to operate any longer. I figured that enough had changed that I'd need to do something differently than before.
So, I recently came here to figure out how to get it to work again. Little was I aware at the time that C++ layout has changed just enough that I'm learning all over again how it operates.
So much for the history, now on to my present issue-- not being able to return to the main menu.
Previously, I'd set a do {.......} while (ch != 27) as my escape back to the main menu. It worked great before, but now something is different, and I'm not sure where to go to find how it needs to be resolved.
As recommended by Ancient Dragon, I'm running MS Visual Studio Express 2008 C++. …

SteveDB 0 Newbie Poster

They were functions.
And that was the fix.
Thank you.

SteveDB 0 Newbie Poster

Hi all.
A while back I'd posted regarding a do-while routine, using switch.
It appears that my main is working, and my switch.... it just keeps looping around my main menu.
I'm not entirely clear on why either.
Here is the code.
(One responder to a previous post told me that my indenting sucked, I've done a preview, and it looked good when I posted. It if screws up, please accept my apologies. I did try...)

# include "stdafx.h"
# include <iostream>
# include <cmath>
# include <xutility>
# include <stdlib.h>
# include <cctype>
# include <conio.h>
# define PI 3.1415926535898

using namespace std;
char ch; 
//I've tried both int, and char, as well as with 
//single quotes within my switch, for char ch and without 
//the single quotes for int ch.

int main(int argc, _TCHAR* argv[])
{
do 
{
cout << "Copyright 2001, Welcome to the Angle Finder Program." << endl;
cout << "This program is designed to take only numeric values." << endl;
cout << "Make certain you only input numbers. Otherwise it will exit." << endl;
cout << " Please choose:  1 for the Hip/Valley Angle. "<< endl;
	cout << "2 for the Cricket Valley Angle. " << endl;
	cout << "3 for the Ridge Angle "<< endl;
	cout << "0 to exit. "<< endl;

cin >> ch;
switch (ch)
{ 
case '1' :  int HipValley(int& Rise1, int& Rise2, double& Eave, float& a); 
// this is the Hip/Valley choice.
break;
case …
SteveDB 0 Newbie Poster

Well because your indentation sucks, it's impossible for you to tell that the
while (ch != 27);
is stuck on the closing brace of the switch, and not the closing brace of the do

Salem,
Thanks.
I don't know why my indentation got so screwed up.
It looked fine when I posted.
After I posted, I dug more, and realized that it was the placement of my while statement. I'd had it one brace too deep.
This portion is now resolved.
Thanks for your posts.

SteveDB 0 Newbie Poster

Hi all.
I have found some tutorials online, I believe they were from some university classes, and one from a guy named Juan Soulie.

I seem to have solved the bulk of my issues, yet have one last one-- that I can identify.

For some reason that I still don't understand, I keep getting a c2059 error, stating that return is a syntax error.

int main(void)
{
	do 
	{
cout << "         Copyright 2001, Welcome to the Angle Finder Program.          " << endl;
cout << "        This program is designed to take only numeric values.          " << endl;
cout << "       Make certain you only input numbers. Otherwise it will exit.    " << endl;
	cout << " Please choose:  1 for the Hip/Valley Angle. "         << endl;
	       cout << "                 2 for the Cricket Valley Angle. "     << endl;
	       cout << "                 3 for the Ridge Angle "               << endl;
	       cout << "                 0 to exit. "                        << endl;
		char ch;
		cin >> ch;
		
switch (ch)
{ 
     case '1' :  int HipValley(int& Rise1, int& Rise2, double& Eave, float& a); 
                    // this is the Hip/Valley choice.
	break;

     case '2' : int CricketValley(int& Rise1, int& Rise2, double& Eave, float& a, float& Width); 
                   // this is the cricket valley choice.
	break;

      case '3' : int RidgeAngle(int& Rise1, int& Rise2); // this is the Ridge Angle choice.
               break;
      default : return 0; // this will end the routine.
 }  while (ch != 27);
        }
return 0; //line 186

}

This …

SteveDB 0 Newbie Poster

mitrmkar,
sorry about the lack of code tags. It was late, and I was tired, I think I realized after I'd closed my computer for the night that I'd forgotten to set them.

First of all, please learn to use code tags.

It looked like you are maybe implementing the functions inside main(), which is not allowed. You cannot nest any functions, it is strictly forbidden, like for example

int somefunction()
{
    int some_value;

   void nestedfunction()
   {
        // nestedfunction()'s code here ...
       return;
   }
    return some_value;
}

This is new.... the old way functions would not work out of main. Of course that was close to 7 years ago.


You can also do without function prototypes in some cases, for example

int somefunction()
{
    // somefunction()'s code here ...
    return 0;
}
int main()
{
     // call somefunction() ..
     int i = somefunction();
     return i;
}

Or the same with a prototype ...

// prototype
int somefunction();
int main()
{
     // calling somefunction() at this point can be done
     // because the above prototype tells the compiler 
     // how to deal with somefunction() ...
     int i = somefunction();
     return i;
}
// implementation
int somefunction()
{
    // somefunction()'s code here ...
    return 0;
}

Hopefully you got the main idea how to organize your code.

So, it appears that from this point forward, I have my functions outside of the main. I was beginning to wonder about this last night as I was posting this, but it …

SteveDB 0 Newbie Poster

mitrmakr,
Thanks again for your response.
As I understand what you're saying,
AFTER i've declared my functions, with the int function_name(void)
I need to place the following in front of each routine which are the guts of my functions, correct?
// implementation of function hipvalley () ...
int hipvalley (void)
{
int some_value;

// my function code

return some_value;
}

Presently, my general post menu code is:

{
function_name1()

{
//my code for function_name1
//explanation menu

do

{

//my actual core code

}while(ch1!=27)

}//end of function


function_name2()
{
//my code for function_name2
//explanation menu

do

{
//my actual core code
}while(ch2 != 27)

} //end of function


function_name3()
{
//my code for function_name3
//explanation menu

do

{
//my actual core code

}while(ch3!=27)

} //end of function

}
return (0);

However, after trying my understanding of your fix, it still threw 3 errors, as previously stated.

Best.

SteveDB 0 Newbie Poster

Hi again.
Again, thank you for your respective inputs. They are deeply appreciated.

In response to the last post, I did as you recommended.

# include "stdafx.h"
# include <iostream>
# include <cmath>
# include <xutility>
# include <stdlib.h>
# include <cctype>
# include <conio.h>
# define PI 3.1415926535898


using namespace std;


//this is trial version 3 to update, and continue to test my programming skills.
// I did this once, let's see it happen again. 

double Rise1 = 0; //for vertical data input of 1st roof slope-- Rise1
double Rise2 = 0; //for vertical data input of 2nd roof slope-- rise
double Eave = 0; //for data input- eave orientation angle-- 0 through 180,
		 // 181 through 360 is identical to 0 through 180.
double a; //input data conversion for both cricket, and hip/valley routine.
		 // cross product angle equation.
double Width = 0; //data input for cricket routine-  cricket width.
char  ch1, ch2, ch3; //character choices


float atan(float);
float acos(float);
float sqrt(float);

int hipvalley (void); 
int cricketvalley(void);
int ridgeangle(void);


int _tmain(int argc, _TCHAR* argv[])
{
	
	for(;;) //this is an infinite loop. One of the choices
		    // will end it.
	{
	cout << "Copyright 2001, Welcome to the Angle Finder Program. " << endl;
	cout << "This program is designed to take only numeric values." << endl;
	cout << "Make certain you only input numbers. Otherwise it will exit." << endl;
	cout << " Please choose:  1 for the Hip/Valley Angle. "<< endl;
	cout << " …
SteveDB 0 Newbie Poster

Hi again.
Ok,
I applied the for loop.
I've also applied the corrections to my switch function.
I notice a couple of items up front, so please allow me to deal with them first.
The first thing that occurs when I run the console appl on this is that I get a blank cmd console.
I tried a a few keystrokes to get a response, and nothing.
I inadvertantly hit my space bar and that's when my main menu comes up.
I then pick a numeric value, and nothing happens.
So I closed it out, and recompile it.
I then clicked my spacebar again and it calls the menu.
This time my numeric entries only call the menu- as before.
Also, 0 does not call for the exit of the routine. It calls to my cout, which says this was not a valid choice....
I've recompiled about a dozen times now, and while my main menu now comes up without having to click my spacebar, no numeric value activates my functions.

Below is my code:

# include "stdafx.h"
# include <iostream>
# include <cmath>
# include <xutility>
# include <stdlib.h>
# include <cctype>
# include <conio.h>
# define PI 3.1415926535898


using namespace std;


//this is trial version 3 to update, and continue to test my programming skills.
// I did this once, let's see it happen again. 

double Rise1 = 0; //for vertical data input …
SteveDB 0 Newbie Poster

ICorey,
I had first noticed my issue when the '1' single quote marks were on the numbers in my switch list. I had removed them, and it did not resolve it. I then tried multiple items, and just never repalced them.

Ellisande,
As to my choice of do-while.
At the time I'd originally made this-- 1999-- I liked (I should say that I understood it better than the 'for') the do while, and didn't really understand the for.
Now, as to the for loop. I don't ever remember using the semi-colon inside of a for before.
I remember
for (i>1; i++; i<N) where N was some numeric value of my choosing.
But here you have just two semi-colons.
for (;;)
Does that perform some task? Or did you make it that way deliberately?


As to my functions, they are mathematical constructs to solve an old problem that I was once faced with some 13 years ago.

Thanks for your respective inputs, I'll apply your solutions, and see what I come up with.
Best.

SteveDB 0 Newbie Poster

Well, apparently, I jumped the gun a little.
My code for the program I wrote still doesn't work.
It compiles fine and throws no errors, but when I run it, only my main menu list runs-- over and over, regardless of my input, and the esc key no longer works.

I have a list of three options.
1- func_A
2- func_B
3- func_C

I've used switch up until now, and as stated previously, it ran fine. This evening I tried multiple nested if else if statements, and obtained the same issue. My console run just output my primary menu-- over and over again, regardless of my input.

Below is my code.

float hipvalley(float argc, char *argv[]); 
float cricketvalley(float argc, char *argv[]);
float ridgeangle(float argc, char *argv[]);
//I've tried other terms within the parenthesis for the above functions, and 
// a variety of errors are thrown. They are briefly discussed below.

int _tmain(int argc, _TCHAR* argv[])
{
do
     {
         cout << "Copyright 2001, Welcome to the Angle Finder Program." << endl;
         cout << "This program is designed to take only numeric values." << endl;
         cout << "Make certain you only input numbers. Otherwise it will exit." << endl;
		cout << " Please choose:  1 for the Hip/Valley Angle. "<< endl;
		cout << "                 2 for the Cricket Valley Angle. " << endl;
		cout << "                 3 for the Ridge Angle " << endl;
		cout << "                 ESC to exit. "<< endl;
		ch …
SteveDB 0 Newbie Poster

Hi all,
With some help of others, my code now works. To those who helped-- again, thank you; immensely!
Yesterday, I stumbled across the form builder in VS Express 2008.
I've built my forms-- via the new-fangled drag/drop that I've come to love so much (as opposed to writing/typing them into existence. Don't worry, as I get this one working, I'll go back and study what I've done, and learn how to better do this).

Now it's time to gain a better understanding of how the linking of the base code for my program to the forms I've created works.
The Visual Studio (Express 2008) program creates a number of files when you choose a new project. Header files, Cpp files, resources files, and a readme.txt file that acts as an explainer for certain items.

My use of correct vernacular here will most likely be weak, lacking, and limited, so please be patient with me in my attempts to explain myself, and each step I am seeking to accomplish.

1- The first cpp file that was created was based on the name I gave the project. AngleFinder. In the code of this cpp file, there is a line that states:

//TODO: place code here.

My first question is:
Am I to take the core of my code and place it in this source file?

Once I built the project, and it threw no errors, it compiled perfectly. I then clicked …

SteveDB 0 Newbie Poster

Sorry,
I thought I'd given an example of my two of my division function. In fact I know I did... I wonder why they didn't post.
Just the basic / symbol.

float a;
a = PI / 180;
float x;
x = 180 / PI;
float b;
b = (atan((float)(...)/(...)) * x);

I then have two other functions that are far too complicated to write out here, but they too are using the / symbol.

acos(....(....) / (sqrt(....)+sqrt(.....)))

where the ellipses are the contents of those functions.

SteveDB 0 Newbie Poster

Morning all.
Hope everyone has great weekend.
Once I get done posting this I'll be digging yet another hole for my spinkler system, and hopefully finishing off my drip system for more backyard.
Ok....
Onto my issue.
After a week of struggle to find out why I kept getting errors, I've finally reduced them to a single error-- 5 times.

------ Build started: Project: AngleFinder, Configuration: Debug Win32 ------
Compiling...
SteveAngle.cpp
.\SteveAngle.cpp(85) : error C2296: '/' : illegal, left operand has type 'long double (__cdecl *)(const float)'
.\SteveAngle.cpp(88) : error C2297: '/' : illegal, right operand has type 'long double (__cdecl *)(const float)'
.\SteveAngle.cpp(119) : error C2296: '/' : illegal, left operand has type 'long double (__cdecl *)(const float)'
.\SteveAngle.cpp(122) : error C2297: '/' : illegal, right operand has type 'long double (__cdecl *)(const float)'
.\SteveAngle.cpp(151) : error C2297: '/' : illegal, right operand has type 'long double (__cdecl *)(const float)'
Build log was saved at "file://e:\Steve'sDocs\Visual Studio 2008\Projects\AngleFinder\AngleFinder\Debug\BuildLog.htm"
AngleFinder - 5 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

Here are my # include headers.

# include <stdafx.h>
# include <iostream>
# include <cmath>
# include <xutility>
# include <conio.h>
using std::cout;
using std::cin;
using std::endl;

What I don't understand is why <cmath> does not recognize the use of the divisor symbol for division.
And I further don't undrstand how I'm to get division operations when this happens.
I have in fact done a …

SteveDB 0 Newbie Poster

Necro- I am now using the VC++ Express 2008.
Once I got started posting, and Ancient Dragon responded, I immediately downloaded, and installed it.
I haven't had Borland, or Visual Studio 6 on here since 2003. I've upgrade from a 6gb hdd to a 40gb drive, and have gone through at least 2 full reinstalls of windows, and all my programs. Those two basically went the way of the dodo bird for a lack of need. Now they collect dust in a plastic box that's in my garage.

Niek_e,
You said-- I could've missed something.
The last time I ran this under Borland, and under VS6, it worked, no errors, no troubles, etc....
I use to have a windows executable file from it back in 2001. Since I was new to programming, it was among one of my most satisfying acheivements.

As I toyed with it, I realized that I wanted a genuine cross-platform program, and began tinkering with J+, and used the drag/drop builder to create a series of forms, and then tried to figure out how to link them all... I wound up paying my C++ tutor at the university here to do it for me. It worked great until XP was released, and then I couldn't get it to work any longer, as soon as I converted my hdd to NTFS from Fat 32.

Last year I was talking with a colleague who is good at programming, and he …

SteveDB 0 Newbie Poster

x is declared as an integer-- in the fashion as it was used in 2001.

int  x;  // for data input

Actually, here it is.
I remember now that with some of my reading over the weekend, I found that the declaration of variables was different, and so I made the modification as shown below.

int  x(int num);  // for data input

I will say that I do not understand why this would be different than in times past.

SteveDB 0 Newbie Poster

niek_e,
Sure,
here it is:

cin >> x; // Input Rise1

my cout is identical, in that I'm using <<:

cout << " ie Y/12 format, input only the Y value." << endl; // explanations

As mentioned, I do not get this. This was the way we did it in 2001, and earlier.
I looked up online, and helpfiles, and they all say that this is still the correct way to perform this task.

Thanks for your input.
Best.

SteveDB 0 Newbie Poster

Hi again,
I did some digging online and found some downloadable E-books on VC++.
I've solved some of my problems.
1- the cin, cout now requires a different initiation than before.
using std::cout;
using std::cin;
2- math.h has been changed to cmath (inspite of the fact that it still actually calls to math.h).

I have however found another issue.
It's telling me that the >> "operator" is not recognized, and no substitution for it.
I'm using this for my cin >> __;
I do not understand this, nor have I found a solution to resolve it. Everything I've read in the help file says that this is the correct usage of the >>. The language the error gives is between the hyphen lines.

-----------------------------------------------------------------------------

..\..\..\..\Pers. Docs\Misc\Steve's book\final_draft\Code Angle_Finder.CPP(94) : error C2679: binary '>>' : no operator found which takes a right-hand operand of type 'int (__cdecl *)(int)' (or there is no acceptable conversion)
E:\Program Files\Microsoft Visual Studio 9.0\VC\include\istream(1144): could be 'std::basic_istream<_Elem,_Traits> &std::operator >><std::char_traits<char>>(std::basic_istream<_Elem,_Traits> &,signed char *)' [found using argument-dependent lookup]
with
[
_Elem=char,
_Traits=std::char_traits<char>
]
--------------------------------------------------------------------------------------

The next thing that appears to have arisen is that accessing my mathematical/trig operators appears to now require something more to use them beyond math.h or cmath.

I've found that my basic - + = != < > etc.... operators are accessed by the
using std:: operator __; form.

But in …

SteveDB 0 Newbie Poster

AD,
I found some reading material in the help file-- as long as I pick specific terms.
Since you made mention that iostream.h is obsolete, and I should drop the .h extension, and just include the <iostream>, I found that after dropping the .h file extension for each of my elements- conio, math, etc...-- that I'd obtain a single failure for each.
Once I got to the end-- removing the .h, and then finding it needed to be replaced, the iomanip was my last. I found that it does not work with the .h file extension, however, in removing it, I then run the "clean build solution" option, and then do a "rebuild solution."

This then brings up 108 errors, and all of them are my cin, cout, math functions, etc....

Which is really confusing at this point because those were the elements used for input, and output, and the various math functions- atan, pi, acos, etc....

So I went into read more on the iomanip, and found the headers section of the help file.
<math.h> is no longer a part of that list. Is that too obsolete? I saw two others that appear to be replacements- <algorithm>, and <functional>.
Do I now include those, and no longer include the <math>?

This is part of why I mentioned in my last post it appears I need some updated information to read so find out what's obsolete, and the respective replacements.

SteveDB 0 Newbie Poster

There are going to be many porting issues. Just take them one at a time. For example, iostream.h is depricated (obsolete). use <iostream> (without .h extension) instead.

Ok, so I no longer use the <iostream.h> , and now just use <iostream>

>> skipped when looking for precompiled header use
The first line in *.cpp files with that compiler needs to be #include "stdafx.h"

because that is for precompiled headers. Several compilers use precompiled headers, and Microsoft compilers typically using stdafx.h, although you can change the name of that file if you want to. You can also turn off precompiled headers.

I'll read on this further.


>> fatal error C1083: Cannot open include file: 'intro_sht.cpp':
That error should be obvious to you. The error message of quite explicit.

Yes, I actually removed all of those references out, or for the time being commented them out.

>>At this point I think I need some location sources to read. Any recommendations?
I don't know what kind of documentation you are looking for. Instructions on how to use the compiler? Or what ?

No, I'm thinking something that would be more on the newer C++ language. As it appears I'm about 7 to 9 years out of date on my C++ knowledge, and was always quite limited to what is taught in a sophomore college class for it. The logic is far clearer than it was back then, but I'm still limited to …

SteveDB 0 Newbie Poster

Hi Ancient D.,
Ok, I've installed the VC++ Express, and have started a "new" project.
I've also imported my cpp code from the old program.
I then did a compile.
It ran through and gave me 5 warnings, and 1 fatal error.
The warnings appear to be due to my use of the Borland *.h files used for solving math programs.
stdio.h, math.h, iostream.h, conio.h, iomanip.h.
The fatal error appears to be my former gui cpp files.
I.e.,

------ Build started: Project: HipValley, Configuration: Debug Win32 ------
Compiling...
Code Angle_Finder.CPP
..\..\..\..\Pers. Docs\Misc\Steve's book\final_draft\Code Angle_Finder.CPP(4) : warning C4627: '#include <iostream.h>': skipped when looking for precompiled header use
Add directive to 'stdafx.h' or rebuild precompiled header
..\..\..\..\Pers. Docs\Misc\Steve's book\final_draft\Code Angle_Finder.CPP(5) : warning C4627: '#include <math.h>': skipped when looking for precompiled header use
Add directive to 'stdafx.h' or rebuild precompiled header
..\..\..\..\Pers. Docs\Misc\Steve's book\final_draft\Code Angle_Finder.CPP(6) : warning C4627: '#include <stdio.h>': skipped when looking for precompiled header use
Add directive to 'stdafx.h' or rebuild precompiled header
..\..\..\..\Pers. Docs\Misc\Steve's book\final_draft\Code Angle_Finder.CPP(7) : warning C4627: '#include <conio.h>': skipped when looking for precompiled header use
Add directive to 'stdafx.h' or rebuild precompiled header
..\..\..\..\Pers. Docs\Misc\Steve's book\final_draft\Code Angle_Finder.CPP(8) : warning C4627: '#include <iomanip.h>': skipped when looking for precompiled header use
Add directive to 'stdafx.h' or rebuild precompiled header
..\..\..\..\Pers. Docs\Misc\Steve's book\final_draft\Code Angle_Finder.CPP(11) : fatal error C1083: Cannot open include file: 'intro_sht.cpp': No such file or directory

SteveDB 0 Newbie Poster

Hi all.
I am seeking to learn how to link my drag/drop GUI's to the code I wrote for a program from some 9 years ago.
I.e., I have Borland, and MS's Visual Studio 6.
I used both-- at different times-- to create a program, and was able to use Borland's compiler to make a windows type, DOS-based program, that had inputs, and outputs.
It actually worked really well. That was where I got greedy, and wanted to make a Windows-type GUI interface for everyone, across all platforms to use.
However, after my C++ classes at my local college, and university were through, I realized I never learned how to link my inputs to input boxes, and outputs to output boxes on a user form GUI.
One former acquaintance of mine showed me some basic stuff in Visual Basic. But I either did not pay close enough attention, got lost in between, or the two languages are completely, and thoroughly different-- which actually would not surprise me. Of course I can be equally notorious for not paying attention too.....

Also, I suppose I should say that based on what I've learned in my recent experiences with Excel macros, it appears that my user input boxes must be named identically to my user input variables. As would be my user output boxes must be identically named to my user output variables.


So.....
Where do I start to get the info …

SteveDB 0 Newbie Poster

Apparently, introductions are standard fare here, so please allow me to do mine.
My life is old, broad, and constantly changing.
12 years ago I was a sheet metal mechanic doing metal roofing, ductwork, and keeping guys like all of you cool, as well as your computers cooler still, and had no interest in computers.
11 years ago I was diagnosed with advanced melanoma cancer, and was introduced to computers to keep me from going insane while I recovered from my treatments.
10 years ago I returned to college and began studying math and physics.
9 years ago I took my first of two C++ classes, and wrote a C++ program to solve a sheet metal problem I was faced with 13 years ago.
During that time I purchased Borland's C++ suite. 5.0 I think it was.
I tried making window gui's for the program I wrote, and could never figure out how to link the forms with the program code that actually solved the problem.
7 years ago I paid my C++ tutor to link my code with the (I'd purchased M$'s Visual Studio 6 Suite) M$ J+ gui's I made, and got back a J+ program that I tried selling on the web-- with limited "luck."

After two years of trying to get web exposure with my own website, I finally gave up, and said phooey.
I'm back now, and want to try again. This time however, I've …