小编bdo*_*lan的帖子

递归gmake问题

我需要编写一个快速的makefile来构建我的所有项目.这是C++代码,我正在使用gmake.

假设我有一个目录列表,我想cd到每个目录,发出gmake命令,如果成功,请转到下一个,依此类推.

我通过查看gmake手册来烹饪

.PHONY: all clean dirs $(DIRS)

dirs: $(DIRS)

$(DIRS): \n\t
    $(MAKE) -C $@
Run Code Online (Sandbox Code Playgroud)

它适用于"所有"目标 - 如果我只输入gmake,它就是正确的.但如果我做gmake清洁它什么都不做.

我正在学习gmake,所以我肯定在做傻事:)

谢谢你的帮助.

recursion makefile gnu-make

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

从用户模式访问Windows Native API

我对Windows Native API很好奇.我一直在网上搜索,但未能找到从用户模式调用Native API函数的示例.我相信我对这需要有一个基本的把握 - 具体来说,我必须在我的程序中定义常量和本机API函数,并使用GetProcAddress在ntdll.dll中查找函数,然后调用该函数.

这是正确的,任何人都可以引导我朝着正确的方向前进吗?示例代码将成为我的一天,因为我完全没有找到它.

我在这里遇到了这个代码(http://www.eggheadcafe.com/software/aspnet/31520494/native-application--ntc.aspx),但在我看来它打算在内核模式下运行:

NTSTATUS    ntStatus = STATUS_SUCCESS;
UNICODE_STRING   szPath  = {0};
OBJECT_ATTRIBUTES   Attr  = {0};
IO_STATUS_BLOCK   IoStatusBlock = {0};
HANDLE     hBeep  = 0;

RtlInitUnicodeString(&szPath, L"\\??\\C:\\A.TXT");
InitializeObjectAttributes(&Attr, &szPath, 0, NULL, NULL);

ntStatus = NtCreateFile(&hBeep, GENERIC_READ, &Attr, &IoStatusBlock, NULL,
0, FILE_SHARE_READ, FILE_OPEN, 0, NULL, 0);

if (hBeep != NULL)
{
NtClose(ntStatus);
Run Code Online (Sandbox Code Playgroud)

如何修改此代码以在用户模式下运行?我正在用c ++工作,你可能已经猜到了这一点.

提前致谢.

c++ windows api nt-native-api

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

获取最低位位置的代码如何工作?

unsigned GetLowestBitPos(unsigned value)
{
   double d = value ^ (value - !!value); 
   return (((int*)&d)[1]>>20)-1023; // This is what I really need help understanding. 
}
Run Code Online (Sandbox Code Playgroud)

在我看来,代码将一个double转换为指向整数的指针.我不确定[1]的用途是什么.然后看起来我们向右移位了20位

我将不胜感激任何有关此代码的帮助.我已经用C++编程了一段时间,并且我正在尝试为可编程逻辑控制器(PLC)编写逻辑,以便在可能的情况下执行相同的操作.

谢谢你的帮助

c++ floating-point bit-manipulation

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

无法从文件中读取unicode(japanese)

嗨,我有一个包含日文文本的文件,保存为unicode文件.

我需要从文件中读取并将信息显示到标准输出.

我正在使用Visual Studio 2008

int main()   
{  
      wstring line;  
      wifstream myfile("D:\sample.txt"); //file containing japanese characters, saved as unicode file  
      //myfile.imbue(locale("Japanese_Japan"));  
      if(!myfile)  
            cout<<"While opening a file an error is encountered"<<endl;  
      else  
            cout << "File is successfully opened" << endl;  
      //wcout.imbue (locale("Japanese_Japan"));  
      while ( myfile.good() )  
      {  
            getline(myfile,line);  
            wcout << line << endl;  
      }  
      myfile.close();  
      system("PAUSE");  
      return 0;  
}  
Run Code Online (Sandbox Code Playgroud)

该程序生成一些随机输出,我在屏幕上看不到任何日文文本.

c++ internationalization character-encoding cjk

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

GetWinMetaFileBits()的参考DC参数到底用于什么?

我的印象是经典的Win16图元文件没有嵌入的大小或分辨率信息(除非有METAFILEPICT标题或类似信息) - GetWinMetaFileBits()使用参考DC有什么用?

graphics winapi gdi resolution metafile

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

DVD/FUSE 的 Linux 缓冲区高速缓存?

我想知道 Linux 内核中的缓冲区缓存是否存在于 UDF for DVD 和 FUSE 等文件系统中?

我试图搜索这个,但不幸的是发现的信息很少。

谢谢。

linux filesystems caching vfs linux-kernel

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

Haskell对函数调用感到沮丧

学习Haskell正在杀了我.如果我要编写一个函数,它接受一个可订单元素数组,并输出相同的东西,我该怎么做?

我尝试:

main = testfn [[1],[2]]

testfn :: (Ord a) => [[a]] -> [[a]]
testfn x = x
Run Code Online (Sandbox Code Playgroud)

但我得到的信息是:

无法将预期类型'IO t0'与实际类型'[[a0]]'匹配在表达式中:main检查函数'main'的类型时

monads haskell types list

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

为什么我在宏中获取特定基本数据类型的printf格式?

如何写FORMAT_OF(type),所以,这将是%dint,%schar *,等等.

是否有宏来获取基本数据类型的格式?

c macros

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

GHC 7.0.3否认显示2 ^ 1000作为归一化双输出"无穷大"

我有以下输出 - 我很惊讶.任何帮助为什么"我的双打"似乎如此之低?

序曲GHC.Float> floatRange(0.5e1000 :: Double)

(-1021,1024)

序曲GHC.Float> show(0.5e1000 :: Double)

"无穷"

指数1000似乎离1024限制相当远(正如我预期的IEEE包含this :: Double).

我很感激你的帮助.

floating-point double haskell infinity

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

同步函数和同步块之间有什么区别?

有什么区别

public synchronized void addition()
{
   //something;
}
Run Code Online (Sandbox Code Playgroud)

public void addtion()
{
     synchronized (//something)
     {
        //something;
     }
}
Run Code Online (Sandbox Code Playgroud)

如果我错了,请忽略这个问题.

java multithreading locking synchronized

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