从专业人员到超级专业人员的任何问题 - 1。 - 页 11

 
joo:

做了这个,还是同样的错误。

竺可桢

该项目是连同其属性一起复制到VC++ 6.0中还是单独设置的?

我已经有三次在VS 2010中使用XP中没有的功能了。在Vista和7上一切正常,但在XP上终端看不到库。

竺可桢

我把它写在题目的开头。当你使用XP中没有的WinAPI函数时就会发生这种情况。然而,另一个原因。如果最低系统版本受到更高版本的限制。

我现在正经历着同样的事情。我一直没能搜索到这个功能。

 

Zhunko:

joo:

做了这个,还是同样的错误。

Zhunko:

该项目是连同其属性一起复制到VC++ 6.0中还是单独设置的?

我已经有三次在VS 2010中使用XP中没有的功能了。在Vista和7上一切正常,但在XP上终端看不到库。

Zhunko:

我把它写在题目的开头。当你使用XP中没有的WinAPI函数时就会发生这种情况。然而,另一个原因。如果最低系统版本受到更高版本的限制。

我现在正经历着同样的事情。我从来没有去找过这个功能。

我找到了原因!但我不知道该怎么做。

结果问题出在这个带有静态方法 的类方法的结构中。

    static HWND HandleByProcessIdAndClass()
     {
      HWND   hwndLocal = NULL; // Дескриптор искомого окна.
      size_t i = 0;

      ::EnterCriticalSection(&GetInstance()->csOne);
      ::EnterCriticalSection(&GetInstance()->csMultiple);
     ................. Здесь защищаемый код ...................
      ::LeaveCriticalSection(&GetInstance()->csMultiple);
      ::LeaveCriticalSection(&GetInstance()->csOne);
      return(hwndLocal);
     }

一旦你删除了同步(红色突出显示),该库对XP就变得可见了。在Vista上,它是有效的。

也许是某些系统库的版本不够?

=======

关于这个班,我需要澄清一下。

所有带有静态 "Windows "方法的类方法(大约有80个)都有类似的同步性。

在另一个 "WindowsMT4 "类的实例的构造函数中首先调用指定的方法。

看起来 "Windows "类被初始化的时间过长。

 

我找到了原因。安德烈提供了帮助。我把单子做错了。

XP和Vista初始化类的方式不同。你需要合适的单体。

 
Zhunko:

我找到了原因。安德烈提供了帮助。我把单子做错了。

XP和Vista初始化类的方式不同。你需要合适的单体。


这真是太恶心了。这实在是太可怕了!
 
C-4:

这真是个无奈之举。这实在是太可怕了!
哦,来吧...:-))刚把一个有静态方法 的类转换为单子。一切正常。
 
Zhunko:
是的,好吧...:-))刚把一个有静态方法的类转换为单子。一切正常。

向超级专业人员提问,分享他们的经验:))- 如何删除一个单子?

 
alsu:

向超级专业人员提问,分享他们的经验:))- 如何删除一个单子?

你是说清理资源?在析构器中,你可以。
 
Zhunko:
你是什么意思,明确的资源?你可以在析构器中。

不,在移除对象本身的意义上--什么程序决定何时移除它?

我现在没有任何实际的目的,我只是记得有一次我在做一个项目,其中使用了几个单子模板--所以,在移除单子的时候总是出现问题--我不得不在引用追踪、包装器中的析构器包装等方面制造一些麻烦。例如,当其中一个模块因异常情况而崩溃时,就会出现混乱......。结果,那是我最后一次使用单体,因为在我看来,它的麻烦远远大于好处))。也许我错了。

 
alsu:

不,在移除对象本身的意义上--什么程序决定何时移除它?

我现在没有任何实际的目的,我只是记得有一次我在做一个项目,其中使用了几个单子模板--所以,在移除单子的时候总是出现问题--我不得不在引用追踪、包装器中的析构器包装等方面制造一些麻烦。例如,当其中一个模块因异常情况而崩溃时,就会出现混乱......。结果,那是我最后一次使用单体,因为在我看来,它的麻烦远远大于好处))。也许我错了。

最近学会了单打独斗。我已经知道,我不能没有他们。我不知道如何删除它们。不需要。
 

alsu:

结果,那是我最后一次使用单体,因为对我来说,这似乎比它值得的麻烦多得多)。也许我错了。

如果你在删除一个单子时遇到困难,那么它可能没有被正确使用。虽然单人也有不同,以凤凰为例。