|
Hi,
Thanks a lot and sorry for this mistake.
|
|
|
|
|
|
Hi, I am using Visual Studio 2005 C++/CLI. I have also posted this on the Visual Studio IDE message board. I have been developing an application on my PC at my desk. This application uses the Microsoft.Office.Interop.Excel assembly that I included by adding a new reference in the project properties page by clicking the 'Add New Reference' button and selecting it from a list. I then copied the project to another machine that has Visual Studio 2005 installed on it and the compiler choked on the Excel reference. I went to add the reference to the project properties page but could not find it in the pre-defined list. I went back to my original machine and could not find Microsoft.Office.Interop.Excel in the pre-defined list either. Shouldn't this assembly be in the pre-defined list or is it defined differently? How do I get this assembly in the Visual Studio 2005 reference list? I did it once and I'm almost positive it was in the pre-defined list. What happened to it?
Thanks
Buck
|
|
|
|
|
From http://msdn2.microsoft.com/en-us/library/kh3965hw(VS.80).aspx :
During a Typical installation of Microsoft Office, the primary interop assemblies are set to be installed on first use IF the .NET Framework IS INSTALLED. This installation option works on development computers during project creation and on end user computers when an end user runs a Microsoft Office solution.
Redistributable Primary Interop Assemblies Package
The primary interop assemblies for Microsoft Office products are also available in a redistributable Microsoft Windows Installer package:
The package for Microsoft Office 2003 is available for download from the Microsoft Download Center (http://go.microsoft.com/fwlink/?LinkId=50479).
The package for the 2007 Microsoft Office system is available for download from the Microsoft Download Center (http://go.microsoft.com/fwlink/?LinkId=72637).
|
|
|
|
|
I converted a VS 6 project to VS 2005. When I execute my 2005 project none of my ON_EVENTS_ work. Any fix?
|
|
|
|
|
aschwarz wrote: I converted
what does "converted" mean? Does it mean Visual Studio prompted you to do the conversion and you clicked Yes or OK?
|
|
|
|
|
Yes. I accessed a <name>.dsp file in VS 2005 and was prompted to convert the project. Let me retract my statement. My ON_EVENT_s do indeed seem to be tracking but the results are not as expected. I'm sorry, I misspoke and have to do some additional research.
There is one other annoyance. Whenever I do a build I get a message that the 'hcw' can't be found. Help seems to think that this is a utility. Any idea how to get rid of it?
Thank you for your response. I am sorry that I goofed.
|
|
|
|
|
aschwarz wrote: I am sorry that I goofed.
No problem. Let's get this out of the way first, if you are not converting your project to a "managed" (.NET) project then this is the wrong forum for your posts. The Visual C++ / MFC forum is for "native" project questions.
aschwarz wrote: I get a message that the 'hcw' can't be found. Help seems to think that this is a utility. Any idea how to get rid of it?
Yes it was the old Help Workshop compiler. Along the way they switched to HTML help and there is a new system for that. I have no idea how to convert the "help" part of the project. The utilities probably run as custom compiler steps so you can likely eliminate the compiler error by removing the custom step but then the help will not build. I can point you to this starter MSDN documentation for HTML Help[^] but I have no idea how to convert the project from HCW to HTML help
|
|
|
|
|
Can anyone here help me please and tell me how can i establish a DATA connection in C++, that work with OLE DB?
I would like from my C++ Programme(Visual Studio 2005)to connect the MS SQL Server 2005 through OLE DB, but i do not have any idea how to do this, this field is new for me.
I installed already MDAC 2.8, which it contains the OLE DB, and furthermore i can not do any thing, i do not even what is the next step is. Do i have MDAS 2.8 or not ?
I searched the whole day in the Internet, but without any success. What could help me is a small applicable example in C++, that describes how can i make a connection how can i inquire(call) the DB.
Another thing, should i set something in the Comp. or install something else?
Can anyone help me please or tell me where i can find the acquired information?
Regards in Advance
FreeEagle
|
|
|
|
|
FreeEagle wrote: I searched the whole day in the Internet, but without any success.
Your post suggests your reading skills are not strong enough to be a software developer. You posted this in the wrong forum, also because you apparently can't read. You should consider a career change.
This site has 10s of articles that give examples of everything you likely need to know about working with databases from C++, not to mention the miles of them on the MSDN web site. If you can't find any of them it seems doubtful you have the capacity to develop working software.
|
|
|
|
|
@ Led mike:
Is that your way to help people? It is arrogant and unashamed to treat people this way.
What a pity, that I got such an answer,which did not help me, but just want to bring me down.
Notices or any Tips to any Web Pages, which could show me how can I solve the problem, would be helpful more than your stupid comment. I wrote from the beginning that I am a beginner, and did not claim that I am a great Software developer. I just started to learn this, and I will never ever let anyone (especially a person like you) to bring me down.
Thanks God that there are many people in other Forums,which are not like you, and could help me in this matter.
FreeEagle
|
|
|
|
|
I started to reply to your post but then I remembered you can't read
|
|
|
|
|
I create a windows form apllication, p2pport.
My form file name is Dlg.I get some errors.
error C2027: use of undefined type 'p2pport::CParams'
error C2227: left of '->setValue' must point to class/struct/union/generic type
in Dlg.cpp
params->setValue("Y", "123");
in my Dlg.h file
#include "params.h";
namespace p2pport {
using namespace System;
...............................
public ref class Dlg : public System::Windows::Forms::Form
{
CParams* params;
}
}
in my param.h file
class CParams{
void setvalue(char* k, char* v);
}
in my params.cpp
void CParams::setValue(char* k, char* v){ ..... return; }
Can anybody tell me what's wrong with it?
Appreciate your reply.
Jane
|
|
|
|
|
minihotto wrote: Can anybody tell me what's wrong with it?
Jane one of your compiler errors....
minihotto wrote: error C2027: use of undefined type 'p2pport::CParams'
"use of undefined type" is a beginner level error. Using forums to learn novice programming skills is sub-optimal. I strongly urge you to find some novice level books for programming and learn from them. When you need help understanding something from a book you can post the statement you don't understand in a forum and ask for clarification.
|
|
|
|
|
Jane, please note:
1. C++ and C++/CLI are case-sensitive.
2. C++ and C++/CLI classes are private by default.
3. Your CParams class is not int the p2pport namespace
4. Please use more descriptive subject line.
5. Don't disregard Mike's comments.
-- modified at 19:49 Wednesday 7th November, 2007
"We make a living by what we get, we make a life by what we give." --Winston Churchill
|
|
|
|
|
How can one implement a COM event sink with 'Windows Forms Application' with .NET 2005? Found plenty of examples on how to do it using MFC, but no luck witn CLI yet.
Anyone solved this tricky operation yet? I managed to implement one solution with 2003-version (it's not using CLR:pure or :safe, but CLR:oldformat), yet a problem exists on how to tell the Forms application the parameters (i.e. how to display the received parameters in controls).
|
|
|
|
|
eero_p wrote: with 2003-version (it's not using CLR:pure or :safe, but CLR:oldformat), yet a problem exists on how to tell the Forms application the parameters (i.e. how to display the received parameters in controls).
I don't understand. Perhaps you could post the relevant code that is problematic along with the compiler errors.
|
|
|
|
|
No errors, just don't know how can I make the sink object 'see' the main form or its controls.
Here's the sink that is created in:
public __gc class Form1 : public System::Windows::Forms::Form -style form.
Connecting to COM and reveiving an event is no problem, but how do I pass the parameter received in 'OnEvent' into a control on the form?
#ifndef __SINKBASE
#define __SINKBASE
#include <atlbase.h>
#include <atlhost.h>
#import "xxx.dll" named_guids raw_interfaces_only
#include "xxx.h"
template <UINT nID, class T, const IID* pdiid>
class SinkBase : public IDispEventSimpleImpl<nID, T, pdiid>
{
public:
SinkBase()
{
}
// fill in the _ATL_FUNC_INFO structured depending on DISPID
virtual HRESULT GetFuncInfoFromId(const IID& iid, DISPID dispidMember, LCID lcid, _ATL_FUNC_INFO& info)=0;
};
class MySink : public SinkBase<0, MySink, &DIID__IxxxEvents>
{
public:
MySink()
{
}
BEGIN_SINK_MAP(MySink)
SINK_ENTRY_EX(0, DIID__IxxxEvents, 1, OnEvent)
END_SINK_MAP()
HRESULT GetFuncInfoFromId(const IID& iid, DISPID dispidMember, LCID lcid, _ATL_FUNC_INFO& info)
{
if (InlineIsEqualGUID(iid, DIID__IxxxEvents))
{
info.cc = CC_STDCALL;
switch(dispidMember)
{
case 1:
info.vtReturn = VT_I4;
info.nParams = 1;
info.pVarTypes[0] = VT_BSTR;
return S_OK;
default:
return E_FAIL;
}
}
return E_FAIL;
}
HRESULT __stdcall OnEvent(BSTR eventString)
{
return S_OK;
}
};
|
|
|
|
|
eero_p wrote: but how do I pass the parameter received in 'OnEvent' into a control on the form?
eero_p, your english seems fine but your choice of words is less than optimal in terms of clear communications.
"how do I pass the parameter" ? What the heck does that mean. If you want assistance from texting forums you must give clear specific information. We can't see what you see on your monitor.
For example that might mean that on your form you have a System::Windows::Forms::TextBox and you want to assign the string value received in eventString to the .Text property of the TextBox .
If you had asked that question I would know exactly what you are asking. Also my answer would be that marshaling data from native memory to managed memory is a fundamental aspect of developing with C++/CLI. Therefore if you have not taken the time to study that aspect until you clearly understand it, I strongly suggest you do so now. There are excellent introductory resources both here on CodeProject (Articles) and on MSDN that provide all the C++/CLI information you require.
|
|
|
|
|
Sorry about that. It is sometimes a bit tricky to dig up the correct terms, when you get a new tool in your right hand and task to do in your left. Some sort of guidance on the tool and terminology would be optimal, but unfortunately in this case there were none. Example would have helped a lot.
However, you guessed just fine, and that gives me nice keywords to hit into the google search-field. Thanks!
|
|
|
|
|
I create a "Windows Form Application" projects that names p2pport.
Dlg is my form file name.
The following two lines are in Dlg.h.
struct sockaddr_in addrLoop;
CClient *cnList[5];
But it comes some errors.
error C4368: cannot define 'addrLoop' as a member of managed 'p2pport::Dlg': mixed types are not supported
error C4368: cannot define 'cnList' as a member of managed 'p2pport::Dlg': mixed types are not supported
Do anybody know what's wrong?
Appreciate your reply. Thx.
|
|
|
|
|
minihotto wrote: Do anybody know what's wrong?
Yes, mixed types are not supported. If you had studied C++/CLI, this means reading things likes books and articles you would know what that means. There is actually a great series of introductory articles on the subject right here on Code Project. I suggest you read them.
|
|
|
|
|
|
Hi,
I have to get handle for a process.I am doing as below.
Process^ pc = Process::Start("AcroRd32.exe", strCmdArgs);
IntPtr ProcHandle = pc->Handle;
HWND hwndProc = (HWND)ProcHandle.GetHashCode();
HMENU hMenu = ::GetMenu((HWND)&hwndProc);
// When I debug Iam getting Undefined Value in hMenu.
Is my code correct? Any suggestions would be helpful.
Thanks
Today is a gift, that's why it is called the present.
|
|
|
|
|
narayanagvs wrote: Is my code correct?
Just guessing... HWND hwndProc = (HWND)ProcHandle.GetHashCode();
That doesn't seem right to me, I don't remember ever using GetHashCode to obtain a HWND.
|
|
|
|