小编Mar*_*o29的帖子

如何在小型c ++项目中使用tesseract ocr(或任何其他免费的ocr)?

所以我在研究后听到的是,唯一可靠的免费OCR选项是Tesseract或CuneiForm.

现在,Tesseract文档非常可怕,他们给你的只是一堆Visual Studio代码(适用于我的Windows),从那里你就可以在他们的API海洋中独立完成.您所能做的就是使用编译的exe然后在tiff图像上使用它.

我期待至少很短的文档告诉你如何拉动他们的API调用来使用OCR至少是一个小例子但是没有,他们的文档中没有类似的东西.

CuneiForm:我下载了它,"很棒"一切都用俄语.:(

这些家伙真的很难提起一个小例子而不是他们为我们提供了大量不相关的信息,可能有90%的人无法到达,你怎么能在没有开始小事情的情况下到达那里并且他们不解释它们!

所以我有一堆API,但如果它无处可解,我该怎么用?...也许有人可以给我建议和解决方案?我不是要求一个奇迹,只是一些小事来告诉我事情是如何运作的.

c c++ windows ocr image-processing

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

应用程序无法启动,因为找不到MSVCP100D.dll,重新安装应用程序可能会工作

我在谷歌上搜索并意识到可能有几个原因,所以我将描述我的情景.

当我的应用程序尝试加载在另一个版本的Visual Studio(2010)中构建的.dll文件时,会发生这种情况,如果我在Visual Studio 2008上构建相同的项目,则DLL文件加载得很好......

我不知道它是否重要,但Visual Studio 2010 DLL文件版本是在Windows 7 x32上构建的,而Windows Vista 64位则是在Visual Studio 2008的另一端.

c++ visual-studio-2010 visual-studio

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

如何获取外部应用程序列表视图的 HWND?在 Windows Api 中使用 c++

所以我试图制作应用程序来获取我的资源管理器列表视图的内容并从中获取项目文本等,但这里有问题......

如果我使用列表视图检查 Windows 资源管理器文件夹(使用间谍++),仅出于测试目的,我将使用随机文件夹。

它显示窗口的标题是“FolderView”,类为“SysListView32”,嵌套此列表视图的顶层窗口称为“reference”,这也是所有文件所在的 Windows 资源管理器文件夹的标题。

所以我所做的是..

HWND hWndLV = FindWindow(NULL, TEXT("reference")); // first i get hwnd of the main window, this is where listview window is also nested according to spy++, thats why i do this first.

HWND child = FindWindowEx(hWndLV, NULL,NULL,TEXT("FolderView")); // trying to get hwnd of the listview here but it fails, same happens if i also put the class name along as 

HWND child = FindWindowEx(hWndLV, NULL,TEXT("SysListView32"),TEXT("FolderView"));
Run Code Online (Sandbox Code Playgroud)

我用来bool test = IsWindow(child);测试失败,VS 调试器0x0000000000 …

c++ windows winapi

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

SendMessageCallback用法示例

http://msdn.microsoft.com/en-us/library/ms644951%28v=VS.85%29.aspx

我一直在寻找各地,但无法找到一个关于如何做到这一点的工作.似乎有几个电话让我很困惑.也许有人可以举一个小例子来说明如何声明这个回调然后向它发布消息?

谢谢

c c++ windows winapi

3
推荐指数
1
解决办法
3830
查看次数

如何从HWND句柄获取可读的类名和标题?在WinApi c ++中

我正在使用以下enumchild proc来获取每个窗口的hwnd,问题是我无法以某种方式从每个hwnd中检测到任何信息,因此我可以对被检测为我需要的信息执行我想要的操作。

例如,如何获取枚举下面的窗口类名称和每个窗口的标题?

我尝试过类似

编辑:复制粘贴(如果有帮助)

TCHAR cName[MAX_PATH];

BOOL CALLBACK EnumChildProc(HWND hwnd, LPARAM lParam) {


 TCHAR cName[MAX_PATH];
 GetClassName(hwnd, cName, _countof(cName));
  cout << cName << endl;

     return TRUE; 
}

int _tmain(int argc, _TCHAR* argv[])
{


    HWND hwnd = FindWindow(0, TEXT("reference"));
    EnumChildWindows(hwnd, EnumChildProc, 0);

    system("PAUSE");
 return 0;
}
Run Code Online (Sandbox Code Playgroud)

它只是返回十六进制句柄信息,并且每次都相同,GetClassName函数是否应该每次都将cName更改为新句柄?

另外,GetClassName函数返回写入cName的字符数,我真的不明白这对我有什么用?我需要以某种可读的格式获取cName,以便我可以执行类似的操作

if(className == TEXT(“ classnameiamlookingfor” && hwndtitle = TEXT(“ thetitlethatinterestsme”)DOSOMETHINGWITHIT();

但是我到这里来的是十六进制混乱。

c++ winapi

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

问题 - TCHAR作为LPARAM到属于另一个进程/线程的窗口

所以我正在通过c book示例播放/实现与windows的关系,并且有一些关于dll注入部分的东西令人难以置信,我无法解决它.

我创建了一个属于另一个线程/进程的对话框,我试图将它发送给TCHAR变量,以便它可以在某个函数中使用该var(函数和tchar都在同一个dll文件中)

因此,当创建对话框并在另一个线程中正好坐下时,我会向它发送一条消息.

首先我宣布tchar

TCHAR finalpath[MAX_PATH];
Run Code Online (Sandbox Code Playgroud)

然后我只用信息填充它(我在dll线程中执行此操作,而不是在对话框的线程中,让我也提到我必须在dll线程中执行此操作,因为这只能填充所需的tchar(我需要获取DLL工作目录并填写tchar))

所以,当我在我的tchar中获取此信息时,我正在尝试向对话框发送消息并使用tchar作为LPARAM(wparam是hwnd btw)

SendMessage(hWndDIPS, WM_APP, (WPARAM) lista, (LPARAM)finalpath); 
Run Code Online (Sandbox Code Playgroud)

之后我在另一个线程对话程序循环中做基本功课...

INT_PTR WINAPI Dlg_Proc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) {

   switch (uMsg) {
      chHANDLE_DLGMSG(hWnd, WM_CLOSE, Dlg_OnClose);

      case WM_APP:


  SaveListViewItemPositions((HWND) wParam, (TCHAR)lParam);
         break;
   }

   return(FALSE);
}
Run Code Online (Sandbox Code Playgroud)

应该接收参数的函数(该函数驻留在共享的dll中,如上所述由程序调用,定义如下.

void SaveListViewItemPositions(HWND hWndLV,TCHAR sejv []){...}

我得到的编译器错误是

Error 7 error C2664: 'SaveListViewItemPositions' : cannot convert parameter 2 from 'TCHAR' to 'TCHAR []'
Run Code Online (Sandbox Code Playgroud)

所以我不知道为什么会这样.如果tchar是数组,那么我需要在[]添加的参数中使用它,因为数据如何在参数中使用(更不用说如果我不这样做它会给我更多的错误,我不能在函数中使用参数)

那么为什么不转换呢?

如果有另一个解决方案使这个对话框接收tchar var,请解释.

谢谢

c++ windows dll hook winapi

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

为什么我的mousehook无法识别简单的BOOL?

#pragma data_seg(".shared")  // ".shared" is defined in exports.def to allow  
HWND        m_hHwndMouse = 0;
HHOOK        m_hHookMouse = 0;
BOOL hover = true;
#pragma data_seg()
Run Code Online (Sandbox Code Playgroud)

此部分使用.def文件进行管理

EXPORTS
    SetValuesMouse
    MouseProc

SECTIONS
    .shared READ WRITE SHARED
Run Code Online (Sandbox Code Playgroud)

我正在指导这个dll(添加值)+尝试更改BOOL hover = true; 通过autoit dll调用更改此值

DllCall(".\ simplemousehook.dll","int","SetValuesMouse","hwnd",$ main,"hwnd",$ hhMouse [0],"BOOL",0)

这简直就是这样

HWND        m_hHwndMouse = 0;
HHOOK        m_hHookMouse = 0;
Run Code Online (Sandbox Code Playgroud)

从函数SetValuesMouse中更改的共享部分

void WINAPI SetValuesMouse(HWND hWnd, HHOOK hk, BOOL ho)
{
    m_hHwndMouse = hWnd;
    m_hHookMouse = hk;
    hover = ho;
}
Run Code Online (Sandbox Code Playgroud)

好吧,现在我的DLL里面的鼠标钩子知道发送消息的位置(m_HWNDMOuse)

LRESULT CALLBACK MouseProc( int nCode, WPARAM …
Run Code Online (Sandbox Code Playgroud)

c++ winapi autoit

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