Why MFC Ado pplication doesn't work on another computer?
I have built an application using VC++ 2015, It is an MFC application I set the project "Cahracter Set= Not set" so I don't need Unicode version.
My application uses ADO to connect to database so
try {
HRESULT hr = m_pConnection.CreateInstance(__uuidof(adoNS::Connection));
if (SUCCEEDED(hr)) {
MessageBox(TEXT("CreateInstance succeeded!"));
}
catch (_com_error& e) {
MessageBox(e.Description());
}
catch (...) {
MessageBox(TEXT("OnNewDocument Exception!"));
}
So another handling above. When I build the project it runs fine on my computer Windows 7 x64. But If I run the application on another windows 7 I don't get any exception, no CreateInstance succeeded!??
So The problem is with ADO library how can I figure it out please?
After some search I have Copied the folder ADO from the the target machine (another computer running windows 7 x86) to my Computer (with win7 x64) and VS2015. Now I imported this new ADO library:
#import "C:UsersUser7DesktopMyMfcProgadomsado15.dll"
rename_namespace("adoNS")
rename("EOF", "adoEOF")
Now if I build it runs fine one both machines! So what is the problem there? Should I link to ADO of each target computer? or the problem just concerns ADO 64 bit and ADO 32 bit?
If so I have an ADO on my win7 x64:
C:Program Files (x86)Common FilesSystemado
I linked to it but the same problem?
mfc ado
|
show 4 more comments
I have built an application using VC++ 2015, It is an MFC application I set the project "Cahracter Set= Not set" so I don't need Unicode version.
My application uses ADO to connect to database so
try {
HRESULT hr = m_pConnection.CreateInstance(__uuidof(adoNS::Connection));
if (SUCCEEDED(hr)) {
MessageBox(TEXT("CreateInstance succeeded!"));
}
catch (_com_error& e) {
MessageBox(e.Description());
}
catch (...) {
MessageBox(TEXT("OnNewDocument Exception!"));
}
So another handling above. When I build the project it runs fine on my computer Windows 7 x64. But If I run the application on another windows 7 I don't get any exception, no CreateInstance succeeded!??
So The problem is with ADO library how can I figure it out please?
After some search I have Copied the folder ADO from the the target machine (another computer running windows 7 x86) to my Computer (with win7 x64) and VS2015. Now I imported this new ADO library:
#import "C:UsersUser7DesktopMyMfcProgadomsado15.dll"
rename_namespace("adoNS")
rename("EOF", "adoEOF")
Now if I build it runs fine one both machines! So what is the problem there? Should I link to ADO of each target computer? or the problem just concerns ADO 64 bit and ADO 32 bit?
If so I have an ADO on my win7 x64:
C:Program Files (x86)Common FilesSystemado
I linked to it but the same problem?
mfc ado
@BarmakShemirani: My program is x86 and importedC:Program Files (x86)
but it doesn't works on other computer with x86 the application runs but the ADO doesn't even create instance! but bringing a win7 x86 ADO library and importing it on my win7 64 bit it then works fine!!!! I mean it works on any other version of win7 x86 or x64 and even win xp. But what's the matter with win7 x64 "C:Program Files (x86)common files...ado"?
– Maestro
Nov 14 '18 at 18:05
@BarmakShemirani: But I used in mystdafx.h
:#inport C:Program Files (x86)Common FilesSystemadomsado15.dll"rename_namespace("adoNS") rename("EOF", "adoEOF")
But it doesn't work on other x86? I only can copy the ADO folder of win7 x86 to my machine then import this ado so when I build the application it works fine on any other computer?????!!
– Maestro
Nov 14 '18 at 18:40
I thought you said you have installed 64-bit ADO in"c:Program File (x86)...ADO"
This would be wrong, and causes problems with any 32-bit programs which will access that file. Avoid installing third party components on common folder. Let the installer figure it out if possible. It should install 32-bit in that location. You could use your own file"MyMfcProgadomsado15.dll"
but there could be an issue with distribution of these components.
– Barmak Shemirani
Nov 14 '18 at 19:56
@BarmakShemirani: I didn't change anything? I have two folders:C:Program filesCommon filessystemado
andC:Program Files (x86)Common FilesSystemado
. Could you show me how could i "you have installed 64-bit ADO in "c:Program File (x86)...ADO"? Plaease help.
– Maestro
Nov 14 '18 at 20:42
Okay I think I got confused about what you are doing. What is the value forhr
fromCreateInstance
?
– Barmak Shemirani
Nov 14 '18 at 21:30
|
show 4 more comments
I have built an application using VC++ 2015, It is an MFC application I set the project "Cahracter Set= Not set" so I don't need Unicode version.
My application uses ADO to connect to database so
try {
HRESULT hr = m_pConnection.CreateInstance(__uuidof(adoNS::Connection));
if (SUCCEEDED(hr)) {
MessageBox(TEXT("CreateInstance succeeded!"));
}
catch (_com_error& e) {
MessageBox(e.Description());
}
catch (...) {
MessageBox(TEXT("OnNewDocument Exception!"));
}
So another handling above. When I build the project it runs fine on my computer Windows 7 x64. But If I run the application on another windows 7 I don't get any exception, no CreateInstance succeeded!??
So The problem is with ADO library how can I figure it out please?
After some search I have Copied the folder ADO from the the target machine (another computer running windows 7 x86) to my Computer (with win7 x64) and VS2015. Now I imported this new ADO library:
#import "C:UsersUser7DesktopMyMfcProgadomsado15.dll"
rename_namespace("adoNS")
rename("EOF", "adoEOF")
Now if I build it runs fine one both machines! So what is the problem there? Should I link to ADO of each target computer? or the problem just concerns ADO 64 bit and ADO 32 bit?
If so I have an ADO on my win7 x64:
C:Program Files (x86)Common FilesSystemado
I linked to it but the same problem?
mfc ado
I have built an application using VC++ 2015, It is an MFC application I set the project "Cahracter Set= Not set" so I don't need Unicode version.
My application uses ADO to connect to database so
try {
HRESULT hr = m_pConnection.CreateInstance(__uuidof(adoNS::Connection));
if (SUCCEEDED(hr)) {
MessageBox(TEXT("CreateInstance succeeded!"));
}
catch (_com_error& e) {
MessageBox(e.Description());
}
catch (...) {
MessageBox(TEXT("OnNewDocument Exception!"));
}
So another handling above. When I build the project it runs fine on my computer Windows 7 x64. But If I run the application on another windows 7 I don't get any exception, no CreateInstance succeeded!??
So The problem is with ADO library how can I figure it out please?
After some search I have Copied the folder ADO from the the target machine (another computer running windows 7 x86) to my Computer (with win7 x64) and VS2015. Now I imported this new ADO library:
#import "C:UsersUser7DesktopMyMfcProgadomsado15.dll"
rename_namespace("adoNS")
rename("EOF", "adoEOF")
Now if I build it runs fine one both machines! So what is the problem there? Should I link to ADO of each target computer? or the problem just concerns ADO 64 bit and ADO 32 bit?
If so I have an ADO on my win7 x64:
C:Program Files (x86)Common FilesSystemado
I linked to it but the same problem?
mfc ado
mfc ado
edited Nov 14 '18 at 21:26
Barmak Shemirani
21.3k42145
21.3k42145
asked Nov 14 '18 at 12:28
MaestroMaestro
7910
7910
@BarmakShemirani: My program is x86 and importedC:Program Files (x86)
but it doesn't works on other computer with x86 the application runs but the ADO doesn't even create instance! but bringing a win7 x86 ADO library and importing it on my win7 64 bit it then works fine!!!! I mean it works on any other version of win7 x86 or x64 and even win xp. But what's the matter with win7 x64 "C:Program Files (x86)common files...ado"?
– Maestro
Nov 14 '18 at 18:05
@BarmakShemirani: But I used in mystdafx.h
:#inport C:Program Files (x86)Common FilesSystemadomsado15.dll"rename_namespace("adoNS") rename("EOF", "adoEOF")
But it doesn't work on other x86? I only can copy the ADO folder of win7 x86 to my machine then import this ado so when I build the application it works fine on any other computer?????!!
– Maestro
Nov 14 '18 at 18:40
I thought you said you have installed 64-bit ADO in"c:Program File (x86)...ADO"
This would be wrong, and causes problems with any 32-bit programs which will access that file. Avoid installing third party components on common folder. Let the installer figure it out if possible. It should install 32-bit in that location. You could use your own file"MyMfcProgadomsado15.dll"
but there could be an issue with distribution of these components.
– Barmak Shemirani
Nov 14 '18 at 19:56
@BarmakShemirani: I didn't change anything? I have two folders:C:Program filesCommon filessystemado
andC:Program Files (x86)Common FilesSystemado
. Could you show me how could i "you have installed 64-bit ADO in "c:Program File (x86)...ADO"? Plaease help.
– Maestro
Nov 14 '18 at 20:42
Okay I think I got confused about what you are doing. What is the value forhr
fromCreateInstance
?
– Barmak Shemirani
Nov 14 '18 at 21:30
|
show 4 more comments
@BarmakShemirani: My program is x86 and importedC:Program Files (x86)
but it doesn't works on other computer with x86 the application runs but the ADO doesn't even create instance! but bringing a win7 x86 ADO library and importing it on my win7 64 bit it then works fine!!!! I mean it works on any other version of win7 x86 or x64 and even win xp. But what's the matter with win7 x64 "C:Program Files (x86)common files...ado"?
– Maestro
Nov 14 '18 at 18:05
@BarmakShemirani: But I used in mystdafx.h
:#inport C:Program Files (x86)Common FilesSystemadomsado15.dll"rename_namespace("adoNS") rename("EOF", "adoEOF")
But it doesn't work on other x86? I only can copy the ADO folder of win7 x86 to my machine then import this ado so when I build the application it works fine on any other computer?????!!
– Maestro
Nov 14 '18 at 18:40
I thought you said you have installed 64-bit ADO in"c:Program File (x86)...ADO"
This would be wrong, and causes problems with any 32-bit programs which will access that file. Avoid installing third party components on common folder. Let the installer figure it out if possible. It should install 32-bit in that location. You could use your own file"MyMfcProgadomsado15.dll"
but there could be an issue with distribution of these components.
– Barmak Shemirani
Nov 14 '18 at 19:56
@BarmakShemirani: I didn't change anything? I have two folders:C:Program filesCommon filessystemado
andC:Program Files (x86)Common FilesSystemado
. Could you show me how could i "you have installed 64-bit ADO in "c:Program File (x86)...ADO"? Plaease help.
– Maestro
Nov 14 '18 at 20:42
Okay I think I got confused about what you are doing. What is the value forhr
fromCreateInstance
?
– Barmak Shemirani
Nov 14 '18 at 21:30
@BarmakShemirani: My program is x86 and imported
C:Program Files (x86)
but it doesn't works on other computer with x86 the application runs but the ADO doesn't even create instance! but bringing a win7 x86 ADO library and importing it on my win7 64 bit it then works fine!!!! I mean it works on any other version of win7 x86 or x64 and even win xp. But what's the matter with win7 x64 "C:Program Files (x86)common files...ado"?– Maestro
Nov 14 '18 at 18:05
@BarmakShemirani: My program is x86 and imported
C:Program Files (x86)
but it doesn't works on other computer with x86 the application runs but the ADO doesn't even create instance! but bringing a win7 x86 ADO library and importing it on my win7 64 bit it then works fine!!!! I mean it works on any other version of win7 x86 or x64 and even win xp. But what's the matter with win7 x64 "C:Program Files (x86)common files...ado"?– Maestro
Nov 14 '18 at 18:05
@BarmakShemirani: But I used in my
stdafx.h
: #inport C:Program Files (x86)Common FilesSystemadomsado15.dll"rename_namespace("adoNS") rename("EOF", "adoEOF")
But it doesn't work on other x86? I only can copy the ADO folder of win7 x86 to my machine then import this ado so when I build the application it works fine on any other computer?????!!– Maestro
Nov 14 '18 at 18:40
@BarmakShemirani: But I used in my
stdafx.h
: #inport C:Program Files (x86)Common FilesSystemadomsado15.dll"rename_namespace("adoNS") rename("EOF", "adoEOF")
But it doesn't work on other x86? I only can copy the ADO folder of win7 x86 to my machine then import this ado so when I build the application it works fine on any other computer?????!!– Maestro
Nov 14 '18 at 18:40
I thought you said you have installed 64-bit ADO in
"c:Program File (x86)...ADO"
This would be wrong, and causes problems with any 32-bit programs which will access that file. Avoid installing third party components on common folder. Let the installer figure it out if possible. It should install 32-bit in that location. You could use your own file "MyMfcProgadomsado15.dll"
but there could be an issue with distribution of these components.– Barmak Shemirani
Nov 14 '18 at 19:56
I thought you said you have installed 64-bit ADO in
"c:Program File (x86)...ADO"
This would be wrong, and causes problems with any 32-bit programs which will access that file. Avoid installing third party components on common folder. Let the installer figure it out if possible. It should install 32-bit in that location. You could use your own file "MyMfcProgadomsado15.dll"
but there could be an issue with distribution of these components.– Barmak Shemirani
Nov 14 '18 at 19:56
@BarmakShemirani: I didn't change anything? I have two folders:
C:Program filesCommon filessystemado
and C:Program Files (x86)Common FilesSystemado
. Could you show me how could i "you have installed 64-bit ADO in "c:Program File (x86)...ADO"? Plaease help.– Maestro
Nov 14 '18 at 20:42
@BarmakShemirani: I didn't change anything? I have two folders:
C:Program filesCommon filessystemado
and C:Program Files (x86)Common FilesSystemado
. Could you show me how could i "you have installed 64-bit ADO in "c:Program File (x86)...ADO"? Plaease help.– Maestro
Nov 14 '18 at 20:42
Okay I think I got confused about what you are doing. What is the value for
hr
from CreateInstance
?– Barmak Shemirani
Nov 14 '18 at 21:30
Okay I think I got confused about what you are doing. What is the value for
hr
from CreateInstance
?– Barmak Shemirani
Nov 14 '18 at 21:30
|
show 4 more comments
0
active
oldest
votes
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53300264%2fwhy-mfc-ado-pplication-doesnt-work-on-another-computer%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
0
active
oldest
votes
0
active
oldest
votes
active
oldest
votes
active
oldest
votes
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53300264%2fwhy-mfc-ado-pplication-doesnt-work-on-another-computer%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
@BarmakShemirani: My program is x86 and imported
C:Program Files (x86)
but it doesn't works on other computer with x86 the application runs but the ADO doesn't even create instance! but bringing a win7 x86 ADO library and importing it on my win7 64 bit it then works fine!!!! I mean it works on any other version of win7 x86 or x64 and even win xp. But what's the matter with win7 x64 "C:Program Files (x86)common files...ado"?– Maestro
Nov 14 '18 at 18:05
@BarmakShemirani: But I used in my
stdafx.h
:#inport C:Program Files (x86)Common FilesSystemadomsado15.dll"rename_namespace("adoNS") rename("EOF", "adoEOF")
But it doesn't work on other x86? I only can copy the ADO folder of win7 x86 to my machine then import this ado so when I build the application it works fine on any other computer?????!!– Maestro
Nov 14 '18 at 18:40
I thought you said you have installed 64-bit ADO in
"c:Program File (x86)...ADO"
This would be wrong, and causes problems with any 32-bit programs which will access that file. Avoid installing third party components on common folder. Let the installer figure it out if possible. It should install 32-bit in that location. You could use your own file"MyMfcProgadomsado15.dll"
but there could be an issue with distribution of these components.– Barmak Shemirani
Nov 14 '18 at 19:56
@BarmakShemirani: I didn't change anything? I have two folders:
C:Program filesCommon filessystemado
andC:Program Files (x86)Common FilesSystemado
. Could you show me how could i "you have installed 64-bit ADO in "c:Program File (x86)...ADO"? Plaease help.– Maestro
Nov 14 '18 at 20:42
Okay I think I got confused about what you are doing. What is the value for
hr
fromCreateInstance
?– Barmak Shemirani
Nov 14 '18 at 21:30