小编Ign*_*kas的帖子

std :: vector.clear()是否在每个元素上删除(空闲内存)?

考虑以下代码:

#include <vector>

void Example()
{
    std::vector<TCHAR*> list;
    TCHAR* pLine = new TCHAR[20];
    list.push_back(pLine);
    list.clear();    // is delete called here?
    // is delete pLine; necessary?
}
Run Code Online (Sandbox Code Playgroud)

list.clear()是否在每个元素上调用delete?即我必须在list.clear()之前/之后释放内存吗?

c++ std

59
推荐指数
5
解决办法
8万
查看次数

如何估计线程上下文切换开销?

我试图通过实时截止日期提高线程应用程序的性能.它在Windows Mobile上运行,用C/C++编写.我怀疑高频率的线程切换可能会导致切实的开销,但既不能证明它也不能反驳它.众所周知,缺乏证据并不是相反的证明:).

因此我的问题是双重的:

  • 如果存在,我在哪里可以找到切换线程上下文的成本的任何实际测量值?

  • 如果不花时间编写测试应用程序,有哪些方法可以估算现有应用程序中的线程切换开销?

  • 有没有人知道找出给定线程的上下文切换次数(开/关)的方法?

c c++ multithreading windows-mobile

57
推荐指数
7
解决办法
4万
查看次数

如何在Android中创建命名管道(mkfifo)?

我在Android中创建命名管道时遇到了麻烦,下面的例子说明了我的困境:

res = mkfifo("/sdcard/fifo9000", S_IRWXO);
if (res != 0)
{
    LOG("Error while creating a pipe (return:%d, errno:%d)", res, errno);
}
Run Code Online (Sandbox Code Playgroud)

代码始终打印:

Error while creating a pipe (return:-1, errno:1)
Run Code Online (Sandbox Code Playgroud)

我无法弄清楚为什么会失败.该应用程序具有android.permission.WRITE_EXTERNAL_STORAGE权限.我可以在同一位置创建具有完全相同名称的普通文件,但管道创建失败.有问题的管道应该可以从多个应用程序访问.

  1. 我怀疑没有人可以在/ sdcard中创建管道.这样做的最佳位置在哪里?
  2. 我应该设置什么模式桅杆(第二个参数)?
  3. 应用程序需要任何额外的权限?

android named-pipes android-ndk

12
推荐指数
2
解决办法
2万
查看次数

如何获得最顶层活动的任何标识符?

我有一个服务,当最顶层的Activity更改时,它的行为必须改变.比如,活动A处于活动状态,然后服务开始某种处理.当活动A不再可见时,此处理必须停止:用户按下"返回","主页"或执行任何使活动A不可见的操作.此活动A必须不知道该服务 - 即它必须不必明确告知服务它正在消失.

简而言之,有没有办法:

  • 获取最顶层Activity的任何类型的标识(对象引用,类名,ID等),
  • 最顶层活动更改时收到通知?

PS这可能听起来像恶意软件行为,但事实并非如此!这是合法的用例!

编辑:活动不在我的应用程序中.它们几乎可以是任何东西 - 浏览器,地图应用程序,设置等.

android

11
推荐指数
1
解决办法
1万
查看次数

如何找出哪些CVS标签涵盖哪些文件和路径?

有一个遗留的CVS存储库,其中包含大量目录,子目录和路径.还有大量的分支和标签,不必覆盖所有路径和文件 - 通常是一个子集.我怎样才能找出哪个分支/标签涵盖了哪些文件和路径?

CVS日志已经提供了每个文件的标签列表.该任务要求我将其转换为每个标签的文件.我在当前的WinCVS(CVSNT)实现中找不到这样的功能.给定充足的空循环,我可以编写一个Perl脚本来做到这一点,算法并不复杂,但需要完成.

我想有些人需要这些信息并解决了这个问题.因此,我认为应该是一个随时可用的(开源/免费)工具.

cvs

8
推荐指数
2
解决办法
3万
查看次数

从Google App Engine迁移有多难?

我正在考虑制作一个(最初)小型Web应用程序,它最终有可能增长.所有被认为是Google App Engine的东西似乎都是非常有吸引力的选择.比如,用户群和复杂性都在增长,出于一个或另一个原因,我需要将GAE抛在身后.迁移离开有多困难?

1)GAE是否提供了导出数据库的方法?它是什么格式?难道把它放在MySQL(或类似的)下吗?

2)我必须使用GAE API在哪些区域(例如数据库访问,其他?)?即哪些部分的实现必须被抽象掉/接口?

编辑:3)或者,是否值得抽象GAE API?

migration google-app-engine

8
推荐指数
1
解决办法
1226
查看次数

什么工具可以对同一文件中的两个部分进行直观比较?

已经讨论过好的文件比较工具,但是我的问题更具异国情调.是否有任何可视文本比较工具(如WinMerge)可以让我轻松地在同一个文件中的两个部分进行视觉比较?

我在vcproj文件中有多个配置,需要维护它们.手动执行此操作非常痛苦 - 拆分窗口,逐个字符滚动.最重要的是,xml非常冗长,需要大量的屏幕空间.我不敢相信没有工具可以进行自动文件部分比较,因为这听起来像是一个非常常见的问题.

请不要让我使用属性页面,我不想要更复杂,我想要更少.手动拆分成文件,然后比较它们也太过中世纪(我现在正在这样做).

diff file-comparison

7
推荐指数
1
解决办法
1265
查看次数

如何使用setCamera(MediaRecorder)?

根据Android SDK,MediaRecorder.setCamera可用于回收现有的摄像头实例以进行视频捕获和预览,而无需重置预览.我无法找到任何样本,我的所有尝试都是徒劳的:我要么得到错误的状态异常,要么MediaRecorder.prepare失败.

  • 有谁知道这种方法是否可用?
  • 我怎么用呢?
  • 网上有哪些样品?

供参考:http: //developer.android.com/reference/android/media/MediaRecorder.html#setCamera(android.hardware.Camera)

camera android mediarecorder

7
推荐指数
3
解决办法
8868
查看次数

适用于Windows和Windows Mobile的常见C#源代码

我的目标是使用可在Windows Mobile和"普通"桌面Windows上运行的UI构建应用程序.优先考虑的是它在Windows Mobile下"看起来很好",而对于桌面Windows,如果它失真则可以.在我投入几天尝试之前,我想听听是否可以开始.这个问题有几个部分:

  1. .NET Compact Framework是"正常"(请编辑).NET Framework的子集吗?如果没有,MSDN在.NET Compact Framework中的类上是否有任何信息,但在"普通"(再次,请,编辑)框架中没有?

  2. 两个框架中共享类的行为是否相同?

  3. 是否可以为两个平台提供单个Visual Studio 2005解决方案/项目?如果是,请如何设置?

  4. 还有其他意见和建议吗?任何相关链接?

.net c# winapi compact-framework windows-mobile

6
推荐指数
2
解决办法
3749
查看次数

如何解决.NET CF异常"无法找到PInvoke DLL"?

这是所有C#专家.我已经在这个问题上敲了一段时间,在网上尝试各种建议但没有用.该操作发生在Windows Mobile 5.0中.

我有一个名为MyDll.dll的DLL.在MyDll.h我有:

extern "C" __declspec(dllexport) int MyDllFunction(int one, int two);
Run Code Online (Sandbox Code Playgroud)

MyDll.cpp中MyDllFunction的定义是:

int MyDllFunction(int one, int two)
{
    return one + two;
}
Run Code Online (Sandbox Code Playgroud)

C#类包含以下声明:

[DllImport("MyDll.dll")]
extern public static int MyDllFunction(int one, int two);
Run Code Online (Sandbox Code Playgroud)

在同一个类中,我通过以下方式调用MyDllFunction:

int res = MyDllFunction(10, 10);
Run Code Online (Sandbox Code Playgroud)

这就是血腥的事情让我"无法找到PInvoke DLL'MyDll.dll'"的地方.我已经验证我可以在系统调用上实际执行PInvoke,例如"GetAsyncKeyState(1)",声明为:

    [DllImport("coredll.dll")]
    protected static extern short GetAsyncKeyState(int vKey);
Run Code Online (Sandbox Code Playgroud)

MyDll.dll与可执行文件位于同一文件夹中,我也尝试将其放入/ Windows文件夹中,没有任何更改也没有成功.任何建议或解决方案都非常感谢.

.net c# pinvoke windows-mobile

5
推荐指数
1
解决办法
1万
查看次数

参数定义(类型和名称)和(类型*名称)之间有什么区别?

这是一个非常基本的问题,但是,从C++专家那里听到它会很好.

在C++中有两种相似的方法来声明by-reference参数.

1)使用"星号":

void DoOne(std::wstring* iData);
Run Code Online (Sandbox Code Playgroud)

2)使用"&"":

void DoTwo(std::wstring& iData);
Run Code Online (Sandbox Code Playgroud)

每种方法的含义是什么?在任何情况下都有任何问题吗?

奖金#1:在#1和#2中调用方法的正式方法是什么?它们都被称为"按参考"吗?

奖金#2:故意使用std :: wstring.在每种情况下,对标准库类有什么影响?

c++ argument-passing

5
推荐指数
1
解决办法
3703
查看次数

将类型转换为无效*是错误/危险的吗?

整个代码是用ANSI C编写的,它应该保持不变.我有一个像这样定义的回调:

typedef enum {
    Event_One,
    Event_Two,
    Event_State
} EventEnum;

typedef void (*callback)(EventEnum event, void* data);
Run Code Online (Sandbox Code Playgroud)

回调接收者data根据event值解释.这是组件之间的契约.有时它是指向结构的指针,有时它可能是一个字符串,其他情况可能是其他数据.我正在定义一个额外的event并设置一个新的"合同",这data是一个枚举.像这样:

typedef enum {
    State_Initial = 0,
    State_Running,
    State_Final
} StateEnum;
Run Code Online (Sandbox Code Playgroud)

然后代码中的某个地方我有一个回调函数,就是这样做的

void ProcessEvent (EventEnum event, void* data)
{
    if (event == Event_State)
    {
         StateEnum state = (StateEnum)data; /* <<<<<<<<<<< */
         switch (state) {
         case State_Initial:
             <...>
             break;
         case State_Running:
             <...>
             break;
         case State_Final:
             <...>
             break;
         }
    }
}
Run Code Online (Sandbox Code Playgroud)

上面的回调被调用如下:

{
    callback infoCallback = ProcessEvent; /* …
Run Code Online (Sandbox Code Playgroud)

c type-conversion

4
推荐指数
1
解决办法
3516
查看次数

如何在Windows Mobile下生成GUID?

Windows Mobile生态系统中是否有可用于生成GUID的现成API(C/C++)?我正在寻找简单的一次性API来做到这一点.如果需要编写整个算法或使用一些额外的第三方模块,我将在没有这个的情况下取消.

背景.要向用户显示通知,我使用SHNotificationAdd,它需要一个GUID.MSDN和其他来源中的示例显示GUID是硬编码的.但是,我想将SHNotification*包装在一个在我的应用程序的整体设计中很好地融合的类中.MSDN对SHNOTIFICATIONDATA-> clsid所代表的细节非常害羞.提到的"班级"提出的问题多于答案.

c++ guid windows-mobile

2
推荐指数
1
解决办法
1303
查看次数