|
How to make a .OLB file in VC++?
Thanks in advance.
|
|
|
|
|
You guys have been a big help with my previous question, I have another.
I have input file "input.txt"
i have outputfile "output.txt"
input.txt will always look like
A 1 5 4
B 2 6 3
the first value can be a different, but will always be one char in length.
I want to grab each value on the first and second line and assign variables to them.
i've looked a lot about inFile.get or .getline or .peek, but it's not making a whole lot of sense.
I have this:
ifstream inf;
ofstream outf1;
ofstream outf2;
inf.open(argv[1], ios::in);
outf1.open(argv[2], ios::in);
outf2.open(argv[2], ios::out);
char n, x, y, z;
while(!inf.eof())
inf.get >> n >> x >> y >> z;
Can anyone shed any light?
Thanks,
Ed
|
|
|
|
|
Reading a char doesn't skip white space and you don't need the get . Try this:
inf >> n >> ws >> x >> ws >> y >> ws >> z >> ws;
The ws manipulator can be used to explicitly skip white space.
Steve
|
|
|
|
|
i tried something like that, but i get this error:
error C2475: 'std::basic_istream<_Elem,_Traits>::get' : forming a pointer-to-member requires explicit use of the address-of operator ('&') and a qualified name
with
[
_Elem=char,
_Traits=std::char_traits<char>
]
error C2475: 'std::basic_istream<_Elem,_Traits>::get' : forming a pointer-to-member requires explicit use of the address-of operator ('&') and a qualified name
with
[
_Elem=char,
_Traits=std::char_traits<char>
]
warning C4552: '>>' : operator has no effect; expected operator with side-effect
|
|
|
|
|
I was wrong about the fact that reading a char doesn't skip white space. I used the following test program and was able to read in data like yours however:
-----
// Console.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <fstream>
#include <iostream>
using namespace std;
int main(int argc, char* argv[])
{
ifstream in("C:\\a.txt");
char n, a, b, c;
while (in >> n >> a >> b >> c)
{
cout << n << " " << a << " " << b << " " << c << endl;
}
return 0;
}
Steve
|
|
|
|
|
worked like a charm, Steve.
Thank you!
|
|
|
|
|
Steve, one last quick one, if I have two lines, how would I handle that?
my input file reads:
A 1 2 3
B 4 5 6
|
|
|
|
|
It should work with multiple lines. It will work with or without multiple lines. If reads the 1st character into n and the 2d, 3rd and 4th into a, b, c, respectively. Then it repeats the process. What exactly do you want to do with the data?
Steve
|
|
|
|
|
i came up with this...
char n, x, y, z, n2, x2, y2, z2;
while(!inf.eof())
inf >> n >> x >> y >> z >> n2 >> x2 >> y2 >> z2;
but was just seeing if there was a more efficient way of grabbing it.
in the large scheme of things, I am reading in this values:
A 1 5 7
B 2 4 5
which are actually points on a grid. so they are A(1,5,7) and B(2,4,5). Now I use those values and plug them into my class to do calculations. I never really worked with the ifstream much and i thank you again for your assistance!
-Ed
|
|
|
|
|
Can you show the code which plugs the data into your class?
Steve
|
|
|
|
|
im messing with that right now, but I can show you what I have so far...
int main(int argc, char* argv[])
{
ifstream inf;
ofstream outf1;
ofstream outf2;
inf.open("input.txt", ios::in);
outf1.open("output.txt", ios::in);
outf1.close();
outf2.open("output.txt", ios::out);
char n, x, y, z, n2, x2, y2, z2;
while(!inf.eof())
inf >> n >> x >> y >> z >> n2 >> x2 >> y2 >> z2;
Point p0;
Point p1(x,y,n);
Point3D p1(z);
p1.printP();
Point p2(x2,y2,n2);
Point3D p2(z3);
p2.printP();
system("pause");
/* inf.close();
outf2.close();
return 0;*/
}
I am working on a piece that exhibits inheritance. Basically Point class is already defined. I am inheriting it into Point3D class. I am getting my values from the input file, computing the distance between the points, then outputing to an output file.
|
|
|
|
|
I obviously can't pass char into my functions, i need to convert my input variables into integers. I was playing around with the int function, but I think that is giving me the ascii value. How can I make
char "1" = int 1
|
|
|
|
|
There are problems with this code: you have 2 variables called "p1" and 2 called "p2".
Anyway here how I'd read in a list of points:
----
// Console.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <fstream>
#include <iostream>
#include <vector>
#include <string>
using namespace std;
// Our point structure.
class My3DPoint
{
public:
My3DPoint() : x(0), y(0), z(0) {}
My3DPoint(int _x, int _y, int _z) : x(_x), y(_y), z(_z) {}
int x, y, z;
};
// A collection of "My3DPoint"s.
typedef vector<My3DPoint> My3DPoints;
int main(int argc, char* argv[])
{
ifstream in("C:\\a.txt");
My3DPoints points;
string label;
int x, y, z;
while (in >> label >> x >> y >> z)
{
points.push_back(My3DPoint(x, y, z)); // Add it to our collection.
}
// Now print the collection (in reverse order for fun):
typedef My3DPoints::reverse_iterator RI; // To save some typing.
for ( RI i=points.rbegin(); i!=points.rend(); ++i )
{
const My3DPoint &pt = *i;
cout << "(" << pt.x << ", " << pt.y << ", " << pt.z << ")\n";
}
return 0;
}
Steve
|
|
|
|
|
|
I'm developing a browser using my own version of something simular to MFC's CHtmlView control. I've got all the good stuff in place - a pointer to IWebBrowser2, various event sinks, etc.
What I would like to know is, after (or during) the web browser control navigates to a page -- how can I determine what (if any) the "Favorites Icon" is for that page?
I know that I can look for favicon.ico at the location, or I can manually parse the HTML to look for it specified there, however I have to assume Microsoft has exposed some sort of COM interface that allows me to grab this icon without going through all that drudgery.
Does anyone know how I can do it? I'm not looking for exact instructions, I would just appreciate a pointer (no pun intended) to some sort of interface or any other bit of information to set me in the correct direction.
Thanks!
|
|
|
|
|
Haven't tried it and don't know if it will work but the path I would head down is below. Keep in mind I've never done this and have not worked in C/C++ for a while and when I did it wasn't web related.
I'd call CHttpRequest::GetURL[^] and I would try to get "http://www.websiteofinterest.com/favorite.ico" if true you are good if false handle it and try something else. I have not tested this nor do I know if it will work but it should without any trouble.
MODIFIED: That actually doesn't look like the right function to use. I think that's a server-side call you would make. In theory my idea holds find the right function and you should be good to go.
The enemy's gate is down.
Welcome to CP in your language. Post the unicode version in My CP Blog[^] now.
People who don't understand how awesome Firefox is have never used CPhog. The act of using CPhog alone doesn't make Firefox cool. It opens your eyes to the possibilities and then you start looking for other things like CPhog and your eyes are suddenly open to all sorts of useful things all through Firefox. - (Self Quote)Last modified: Tuesday, April 25, 2006 10:11:18 PM --
|
|
|
|
|
I bow down to the code-frog for responding :bow down:, but unfortunately that's not exactly what I'm looking for.
I already know how to get favicon.ico using WinInet (or whatever).
The thing is that the spanky way to specify a favorite icon for a site is to insert it's reference into the HTML. So looking for favicon.ico doesn't necessarily work. I know how to parse the HTML to find this info, but that's a lot of work - especially since it should already be available via a COM interface at my fingertips.
IE exposes practically everything via COM interfaces... so there has to be something to figure out what the Favorites Icon is for a particular web page (isn't there???)...
Or am I just asking questions without answers?
|
|
|
|
|
chimera67 wrote: Or am I just asking questions without answers?
Oh I believe there's an answer alright I'm just not sure it's a "documented" answer. I reread your post and with your follow-up comments it makes more sense. Unfortunately, I don't have an answer for it. I'd find the object model for I.E. and start looking.
This looks interesting Microsoft[^] and in that link the "Associated Browser Reference" looks good. I'm sure you have seen both of these but that's about as far as I can go. I've got a super tight deadline for the morning.
- Rex
The enemy's gate is down.
Welcome to CP in your language. Post the unicode version in My CP Blog[^] now.
People who don't understand how awesome Firefox is have never used CPhog. The act of using CPhog alone doesn't make Firefox cool. It opens your eyes to the possibilities and then you start looking for other things like CPhog and your eyes are suddenly open to all sorts of useful things all through Firefox. - (Self Quote)
|
|
|
|
|
K, thanks. Perhaps Microsoft actually didn't create a documented method to figure out the favorite icon for a web page.
Seems strange that they didn't, but perhaps it is true and everything has to be done the hard way.
|
|
|
|
|
Well, I have at least made an effort. Been a very long time since I've done this. When I get a chance I'll check this thread and see if you have an answer. If you don't I'll email a few people I know at Microsoft and see if an answer (from the inside) can be obtained. Hopefully you don't have to wait that long...
Good Luck Though!
- Rex
The enemy's gate is down.
Welcome to CP in your language. Post the unicode version in My CP Blog[^] now.
People who don't understand how awesome Firefox is have never used CPhog. The act of using CPhog alone doesn't make Firefox cool. It opens your eyes to the possibilities and then you start looking for other things like CPhog and your eyes are suddenly open to all sorts of useful things all through Firefox. - (Self Quote)
|
|
|
|
|
I'm about as far from a web or web-related expert as it gets, but I'd bet you could get to the entirety of the HTML document (/head/link tags included, where the favicon tag will be) by using the DOM heirarchy provided by the IE COM interfaces.
Unless, of course, this process is what you were referring to as 'parsing the HTML'.
--
Russell Morris
Morbo: "WINDMILLS DO NOT WORK THAT WAY!"
|
|
|
|
|
Thanks! Yeah - I'm already parsing DOM.
Just figured that perhaps IE already had this information and is making it available via COM (like most everything else).
DOM is cool, but unless you do some fancy stuff it is pretty much "after the fact". If the bowels of IE already kept track of the favorites icon -- then duplicating that effort is kind of unecessary, complicated, and also slow.
|
|
|
|
|
IE6 only gets the favicon.ico when you create a Favourite. One of the common complaints is that IE loses Favourite icons over time, because they're stored in Temporary Internet Files and so either get replaced by newer content as the cache fills up, or get lost due to one of the many cache corruption bugs in IE6. You can get it to recover them by dragging the icon from the address bar and dropping it back on there.
It's probably possible to get the right icon from a favourite/URL Shortcut if you happen to have one, but it's probably not going to be very reliable.
IE7 Beta 2 always fetches the favicon but I don't know whether that's something that the WebBrowser control is doing, or whether it's the IE shell.
Stability. What an interesting concept. -- Chris Maunder
|
|
|
|
|
|
Hi all,
I'm reading 8 bytes from a byte array in order to create a double value. In order to do this I must fist read the bytes into an int64 then cast this to double. I'm having a little trouble shifting the array values into the correct position within the __int64.
__int64 *buf = new __int64;
*buf = (((((((data[6] | data[7] << 8) | data[8] << 16 ) | data[9] << 24 ) | data[10] << 32 ) | data[11] << 40 ) | data[12] << 48 ) | data[13] << 56 );
__int64 foo = ((data[10] | data[11] << 8) | data[12] << 16 ) | data[13] << 24;
__int64 bar = (((data[10] << 32) | data[11] << 40) | data[12] << 48 ) | data[13] << 56;
*foo <<= 32;
double* dub = (double *)buf;
double val = *dub;
As you can see from my code I am unable to read all 8 bytes in one line. The bytes only fill the first 32 bits. So when the values are read into *buf, the first 4 bytes goto the correct position then the next 4 bytes overwrite them. Why is this? If I read the first 4, then shift them 32 bits, then read the next 4 I can correctly read them. But why can't I read them in 1 line of code?
|
|
|
|
|