相关疑难解决方法(0)

如何在内存/ CPU时间有限的Windows下运行程序?

它从这个问题开始,接着是这个问题,现在又引发了现在的问题.:)

任务如下:制作一个Windows程序,在有限的环境中运行另一个程序.另一个程序不可信任,因此它必须为hackish代码做好准备.进一步来说:

  • 将可用内存限制为某个X MB(作为参数给出);
  • 将可用执行时间限制为约X毫秒(作为参数给出).请注意,这是内核时间+用户时间,但不是空闲时间.另一方面,空闲时间也必须受到限制,因此程序不能Sleep()无限制.
  • 在程序终止时,尽可能精确地报告实际花费的CPU时间.毫秒是好的,几厘秒可以接受,少于那不会很好.CPU周期是理想的.
  • 如果程序崩溃,请报告有关崩溃的一些信息(越多越好,但不要过度使用堆栈跟踪等).
  • 最好捕获程序的所有输出并报告;
  • 该程序应该只使用当前目录,加上SYSTEM32的一些强制.DLL(如kernel.dll,user32.dll等).尽可能限制访问其他任何内容.不应该访问诸如注册表和网络之类的东西(除非强制性的.DLL需要它).访问越少越好.

这将是计算奥林匹克支持软件所必需的.该程序将在中央服务器上运行参与者提交的内容,因此您可以期待任何相关内容.崩溃将是常规的,并且也可以预期一些黑客攻击.

那么 - 你将如何制作这样的节目?你会用什么?在之前的主题(见上文)中,很明显附加作为调试器是一个坏主意,尽管我可能只是太笨拙了.

windows

5
推荐指数
2
解决办法
1495
查看次数

.访问违规阅读位置

我遇到了一个非常奇怪的问题.

代码如下:

::boost::shared_ptr<CQImageFileInfo> pInfo=CQUserViewDataManager::GetInstance()->GetImageFileInfo(nIndex); 
Image* pImage=pInfo->m_pThumbnail;
if(pImage==NULL)
    pImage=m_pStretchedDefaultThumbImage;
else
{
    //
    int sourceWidth  = pInfo->GetWidth();
    int sourceHeight = pInfo->GetHeight();

    int destX = 0,
        destY = 0; 

    float nPercent  = 0;
    float nPercentW = ((float)GetThumbImageWidth()/(float)sourceWidth);;
    float nPercentH = ((float)GetThumbImageHeight()/(float)sourceHeight);

    if(nPercentH < nPercentW)
    {
        nPercent = nPercentH;
        destX    = (int)((GetThumbImageWidth() - (sourceWidth * nPercent))/2);
    }
    else
    {
        nPercent = nPercentW;
        destY    = (int)((GetThumbImageHeight() - (sourceHeight * nPercent))/2);
    }

    int destWidth  = (int)(sourceWidth * nPercent);
    int destHeight = (int)(sourceHeight * nPercent);
    rcShowImage=CRect(rc.left+destX, rc.top+destY,rc.left+destX+destWidth,rc.top+destY+destHeight); …
Run Code Online (Sandbox Code Playgroud)

c++ boost smart-pointers access-violation

0
推荐指数
1
解决办法
5683
查看次数

标签 统计

access-violation ×1

boost ×1

c++ ×1

smart-pointers ×1

windows ×1