我们将Visual C++ 2003解决方案迁移到Visual 2005,现在我们在部署到干净的XP机器时遇到了问题.
我们的解决方案有一个DLL项目和一个使用此DLL的命令行可执行文件.两个项目都创建并嵌入清单文件.
我们的安装程序还将VC8 CRT运行时从C:\ Program\Microsoft Visual Studio 8\VC\redist\x86\Microsoft.VC80.CRT \复制到安装目录.
当我们在干净的Windows XP上安装时,我们会看到错误消息"应用程序无法启动...应用程序配置不正确".
将exe放在Depends.exe中,说:
Error: The Side-by-Side configuration information for "c:\program files\MySoftware\vc8\BENCHMARK.EXE" contains errors. This application has failed to start because the application configuration is incorrect. Reinstalling the application may fix this problem (14001).
Error: The Side-by-Side configuration information for "c:\program files\MySoftware\vc8\MYLIB-VC8.DLL" contains errors. This application has failed to start because the application configuration is incorrect. Reinstalling the application may fix this problem (14001).
Warning: At least one module …Run Code Online (Sandbox Code Playgroud) 我有一个C++ Windows应用程序myapp.exe,它加载了几个插件.
插件需要找到其DLL的路径.我可以使用GetModuleFileName,但它需要插件DLL的句柄.我不知道从哪里得到这个句柄.GetModuleHandle(NULL)返回可执行文件的句柄.
一种选择是使用GetModuleHandle(GetModuleHandle("myplugin.dll")),但这需要硬编码插件的名称,我想避免.
任何帮助表示赞赏.
保罗
我有一个来自其他公司的应用程序的插件.我的插件使用Qt所以它需要Qt DLL.我的问题是所有版本的4.x Qt Dll都被称为相同,例如:QtCore4.dll.很可能某些其他插件或其他插入到PATH环境变量中的应用程序已将Qt dll放在applications文件夹中.在这种情况下,插件将无法启动,因为它期望DLL的不同版本.
谢谢!
我是10年+,C++ linux/windows开发人员,我被要求估计将Windows应用程序移植到OS X的工作量.
我以前没有在OS X上开发过,所以我不知道会发生什么.
它是一个C++/Qt应用程序,所以我想问:什么是事实上的工具,如编辑器,IDE,编译器,制作工具等?哪些工具是商业的,需要购买?
我需要多长时间才能适应环境并提高工作效率?
提前致谢,
保罗
我的Windows/C++应用程序在内存中为操作员分配~1Gb的数据new并处理这些数据.处理完数据后删除.
我注意到如果我在没有退出应用程序的情况下再次运行处理,则第二次调用运算符new来分配〜1Gb的数据失败.
我希望Windows能够提供内存.使用其他一些Win32调用等可以更好地管理吗?
假设我们有一个c ++类,如:
class MyClass
{
void processArray( <an array of 255 integers> )
{
int i ;
for (i=0;i<255;i++)
{
// do something with values in the array
}
}
}
Run Code Online (Sandbox Code Playgroud)
和类的一个实例如:
MyClass myInstance ;
Run Code Online (Sandbox Code Playgroud)
和2个线程调用该实例的processArray方法(取决于系统如何执行线程,可能是完全不规则的顺序).该范围内没有使用互斥锁,因此两个线程都可以进入.
我的问题是我发生了什么?每个线程范围是否拥有它自己的"i",或者每个进入线程都会在for循环中修改i,导致i一直在奇怪地改变.
这个问题是关于在工作线程中使用单个对象的getter方法.这是一些伪代码:
// Singleton class which contains data
class MyData
{
static MyData* sMyData ;
int mData1[1024];
int mData2[1024];
int mData3[1024];
MyData* getInstance()
{
// sMyData is created in the very beginning.
return sMyData ;
}
void getValues(int idx, int& data1,int& data2,int& data3)
{
data1 = mData1[idx];
data2 = mData2[idx];
data3 = mData3[idx];
}
int* getData1()
{
return &mData1[0];
}
}
class MyThread
{
void workerMethod()
{
MyData* md = MyData::getInstance();
int d1,d2,d3;
md->getValue( 12, d1,d2,d3 );
int* data1 = md->getData1(); …Run Code Online (Sandbox Code Playgroud)