小编Nam*_*ame的帖子

测试插座连接的好工具?

我正在编写一个tcp/ip客户端,我需要一个"测试服务器"才能轻松测试.它应该监听一个可配置的端口,在客户端连接时显示我以及客户端发送的内容,允许我手动输入要发送给客户端的文本.它应该适用于Windows.

通常我会使用简单但功能强大的nc.exe(别名"Netcat"在Unix上也可以在Windows上使用)但是防病毒软件将其检测为"黑客工具",以便我的系统管理员不要让我使用它工作中.

有没有人使用其他工具来测试套接字连接并对它感到满意?

sockets windows networking utility

53
推荐指数
3
解决办法
10万
查看次数

Delphi:如何组织源代码以提高编译器性能?

我正在开发一个具有相当多依赖性的大型delphi 6项目.编译整个项目需要几分钟的时间.经过一些更改后重新编译有时会更长,以便更快地终止Delphi,擦除所有dcu文件并重新编译所有内容.

有没有人知道识别的方法,是什么让编译器变慢和变慢?有关如何组织代码以提高编译器性能的任何提示?

我已经尝试过以下事项:

  • 显式地包含dpr中的大多数单元而不是依赖于搜索路径:它没有改进任何东西.
  • 使用命令行编译器dcc32:它不是更快.
  • 试着看看编译器做了什么(使用来自SysInternals的ProcessExplorer):显然它大部分时间运行一个名为'KibitzGetOverloads'的函数.但我对这些信息无能为力......

编辑,答案总结到现在为止:

在我的案例中最有效的答案:

  • cnpack中的 "清理未使用的单元引用" 功能.它几乎自动清理了超过1000个引用,使"冷"编译速度快了两倍.("冷"编译=在编译之前擦除所有dcu文件).它从编译器获取引用列表.因此,如果您有一些{$ IFDEF}检查所有配置是否仍然编译.

接下来我想尝试一下:

  • 手动重构单元引用(最终使用抽象类),但它需要更多工作,因为我首先需要确定问题所在.一些可能有用的工具:
    • GExperts向delphi IDE添加了一个项目依赖项浏览器(但不幸的是它无法显示每个分支的大小)
    • Delphi Unit Dependency Viewer V1.0做同样的事情,但没有Delphi.它可以计算一些简单的统计数据(哪些单位被引用最多,......)
    • 在其中一个答案的链接上引用的Icarus.

在我的案例中没有改变任何事情的事情:

  • 将我的程序和所有组件中的每个文件放在一个没有子文件夹的文件夹中.
  • 对磁盘进行碎片整理(我尝试使用ramdisk)
  • 使用ramdisk作为代码源和输出文件夹.
  • 关闭实时扫描防病毒软件
  • 列出dpr文件中的所有单元,而不是依赖于搜索路径.
  • 使用命令行编译器dcc32或ecc32.

不适用于我案件的事情:

  • 避免依赖网络共享.
  • 使用DelphiSpeedUp,因为我已经拥有它.
  • 为所有dcu使用单个文件夹(我总是这样做)

我没试过的事情:

  • 升级到另一个Delphi版本.
  • 使用dcc32speed.exe
  • 使用固态驱动器(我没有尝试过,但我尝试使用ramdisk放置所有源代码.但也许我应该在ramdisk上安装delphi)

delphi compiler-construction optimization

32
推荐指数
4
解决办法
6968
查看次数

如何在Delphi中播放wav-File?

Delphi中有哪些功能可以播放声音文件?

windows delphi audio

19
推荐指数
3
解决办法
4万
查看次数

如何将位图字体(.FON)转换为truetype字体(.TTF)?

我的程序(win32,Delphi)需要在表的某些列中显示特殊字符.为此,我为这些列使用了特殊字体.我从我的客户那里得到了字体.它是一个.FON字体.它在屏幕上工作得很好,但是一旦我想用它来打印东西,我就会经常遇到问题.

我想将此.FON字体转换为truetype字体(.TTF)以避免出现问题.我不在乎字体不能很好地扩展.当我在屏幕上使用与原始字体的默认大小相同的大小时,我应该看起来完全相同.有人知道这样做的方法吗?

(它不需要源代码解决方案.字体不会改变.如果我找到一个工具就足够了)

编辑:理想的是获得一个truetype字体,其中原始字体的每个像素被转换为矢量黑色方块(我通过手动重绘几个字符测试,它将按我想要的方式工作).

编辑2,使用的解决方案:使用FontForge + Autotrace然后手动进行更正我能够得到一个跟随位图字体像素轮廓的矢量字体.这种矢量字体比原始字体更好地缩放并解决了我的打印问题.有关详情,请参阅接受的帖

但是,如果有人知道完全自动化的解决方案,我仍然感兴趣.

fonts truetype bitmap-fonts

19
推荐指数
4
解决办法
6万
查看次数

LDAP模式中OID号的实验/专用分支?

LDAP模式中的属性或对象类通过称为OID的唯一编号来标识.此外,OID也用于SNMP协议.每个人都可以通过IANA申请企业编号,然后定义自己的子编号.但是应用程序的处理可以持续长达30天.

有谁知道在等待官方企业号码时是否有可用于实验目的的OID号码的"测试"分支?

ldap snmp oid

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

如何将msxml与Visual Studio 2008 Express(没有ATL类)一起使用而不会变得疯狂?

这不是一个问题,因为我已经找到了解决方案.我花了很多时间,这就是我想在这里解释的原因.

Msxml基于COM,因此即使你有有用的类来处理内存分配问题,它也不是很容易在C++中使用.但是编写一个新的XML解析器要困难得多,所以我想使用msxml.

问题:

我能够在互联网上找到足够的例子来帮助使用msxml CComPtr(智能指针避免必须手动调用每个IXMLDOMNode的Release()),CComBSTR(将C++字符串转换为字符串的COM格式)和CComVariant.这3个有用的课程是ATL课程,需要一个#include <atlbase.h>.

问题:Visual Studio 2008 Express(免费版)不包含ATL.

解:

使用comutil.hcomdef.h,包括一些简单的帮助程序类:

  • _bstr_t 或多或少取代 CComBSTR
  • _variant_t 或多或少取代 CComVariant
  • _com_ptr_tCComPtr通过使用间接取代_COM_SMARTPTR_TYPEDEF

小例子:

#include <msxml.h>
#include <comdef.h>
#include <comutil.h>

// Define some smart pointers for MSXML
_COM_SMARTPTR_TYPEDEF(IXMLDOMDocument,     __uuidof(IXMLDOMDocument));     // IXMLDOMDocumentPtr
_COM_SMARTPTR_TYPEDEF(IXMLDOMElement,      __uuidof(IXMLDOMElement));      // IXMLDOMElementPtr
_COM_SMARTPTR_TYPEDEF(IXMLDOMNodeList,     __uuidof(IXMLDOMNodeList));     // IXMLDOMNodeListPtr
_COM_SMARTPTR_TYPEDEF(IXMLDOMNamedNodeMap, __uuidof(IXMLDOMNamedNodeMap)); // IXMLDOMNamedNodeMapPtr
_COM_SMARTPTR_TYPEDEF(IXMLDOMNode,         __uuidof(IXMLDOMNode));         // IXMLDOMNodePtr

void test_msxml()
{
    // This program will use COM
    CoInitializeEx(NULL, COINIT_MULTITHREADED);

    {
        // …
Run Code Online (Sandbox Code Playgroud)

c++ xml msxml visual-studio-2008

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

如何在MS Visual C++中使用GNU gettext?

是否可以将GNU gettext与MS Visual C++一起使用?有人知道在哪里可以找到在Visual C++下编译的示例项目吗?

更新: 感谢Sorin Sbarnea的评论,这有助于我将所有部分组合在一起:

我已经习惯了Delphi版本的gettext,只需用你的项目编译单元gnugettext.pas,这就是为什么我只是想用我的MSVC项目编译gettext.h.它可能适用于其他C++编译器,但不适用于MSVC.

GNU gettextFAQ解释了如何使用预编译的DLL与MSVC一起完成.但是没有DLL的链接,这些DLL不在主下载中.必须从ftp站点单独下载它们.dll需要2个文件:

如果你需要工具从exe中提取字符串,你还需要:

我还没有尝试使用MSVC,但现在我认为它会起作用.

localization gettext internationalization visual-c++

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

使用delphi确定进程虚拟大小

我有一个Delphi程序,我正在研究这个程序如何在日志文件中打印自己的"虚拟大小",以便我可以看到它何时使用了太多内存.如何使用Delphi代码确定"虚拟大小"?

"虚拟大小"是指Process Explorer显示的值.普通任务管理器无法显示此值.它不是程序的内存使用,而是地址空间的使用.在Win32上,程序不能使用超过2 GB的地址空间.

PS:我使用的是Delphi 6,但其他版本的代码/信息也应该没问题.

windows delphi delphi-6

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

我是否需要释放GetEnumerator返回的枚举器?

我想将枚举器用于Delphi XE2的泛型集合.我想知道,谁拥有函数GetEnumerator返回的TEnumerator(我在文档中没有找到任何明确的答案):

  • 我拥有它并需要在使用后释放它吗?
  • 或者它归集合所有,我不必关心它的释放?

码:

procedure Test;
var
  myDictionary: TDictionary<String, String>;
  myEnum: TDictionary<String, String>.TPairEnumerator;
begin
  { Create a dictionary }
  myDictionary := TDictionary<String, String>.Create;
  myDictionary.Add('Key1', 'Value 1');
  myDictionary.Add('Key2', 'Value 2');

  { Use an enumerator }
  myEnum := myDictionary.GetEnumerator;
  // ... do something with the Enumerator ...

  { Release objects }
  myEnum.Free; // ** Do I need to free the enumerator? **
  myDictionary.Free;          
end;
Run Code Online (Sandbox Code Playgroud)

delphi collections enumerator

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

将代码页的代码源转换为UTF-8的工具?

我正在开发一个开源项目.原始项目包含俄语注释并使用代码页1251.我正在使用代码页1252并且俄语注释在Visual Studio Express 2008中无法正确显示,不是很好,但无论如何我无法阅读俄语.使用代码页950(繁体中文)的人试图编译项目并且由于代码页而无法执行此操作!现在真的很烦人.

我认为使用unicode(更准确地说是带签名的UTF-8)作为代码源的文件格式是可行的方法.

问题:如何轻松转换整个源代码?

我已经知道了:

  • 让Visual Studio将源代码保存为UTF-8.但是:我的计算机正在使用代码页1252,我发现无法告诉VS原始代码源使用代码页1251,因此转换将不正确.

    编辑:正如"LicenseQ"所指出的,有一种方法可以在VS中使用另一种编码打开单个文件:在打开的对话框中单击"打开"按钮旁边的箭头,选择"打开方式",然后选择"代码编辑器(带编码)".

  • 当然,我可以在转换时更改计算机的代码页.但它是Windows中的全局设置,您需要重新启动计算机,以便我正在寻找更友好的解决方案.

  • 我找到了一个名为CodePageConverter的工具,它完全符合我的需要,但不能将其作为批处理作业.

有没有人知道从代码页转换为UTF-8的另一个工具(命令行工具会很完美)?

编辑:正如tkotitan建议似乎iconv是我正在寻找的解决方案.有一个windows版本的iconv.现在我知道了这个工具的名称,我能够在stackoverflow上查找关于处理类似问题的帖子.

unicode utf-8 codepages

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

如何脱机使用LDAP凭据?

我想使用LDAP服务器(可能是Apache目录)来管理应用程序的登录和凭据.应用程序有时需要脱机工作(在笔记本电脑上)而无需连接到LDAP服务器.

复制凭证的最佳方法是什么?

我已经考虑过了:

  • 使用Mitosis在笔记本电脑上复制LDAP服务器.

    但这将是一个非常"沉重"和复杂的解决方案.此外,有丝分裂似乎尚未完成.

  • 将凭据导出为可存储在笔记本电脑上的LDIF文件.

    但我需要一种方法来检查LDIF文件是否实际来自LDAP服务器(该文件应包含一种签名).此外,我想拒绝超过一周没有更新的LDIF文件.如果我能避免自己实施签名和年龄检查,那就太好了.

还有其他可以帮助我的想法或工具吗?

编辑编辑:我看过Kerberos,因为Java-Kerberos-API文档似乎说可以在本地缓存中使用缓存的票证,我认为这可能是我的解决方案.此外,Kerberos可以作为插件添加到Apache Directory中.但Kerberos缓存存储解密的票证(旨在与其他应用程序共享它们).我需要加密版本的票证才能在离线会话期间检查用户密码.结论:Kerberos不能为我的问题提供简单的解决方案.

authentication kerberos ldap ldif

4
推荐指数
2
解决办法
6663
查看次数

如何使用Delphi合并tiff图像?

我有4个小的tiff图像,我想通过合并4个单个图像来生成一个大图像.有没有人知道如何直接使用Delphi或一些可以做到的好组件?

delphi tiff bitmap

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

如何在LDAP中存储文件?

我正在寻找在LDAP服务器中存储配置文件的最佳方法.我的应用程序用于将用户设置保存在xml文件中.用户登录已集中在LDAP服务器中.用户在LDAP服务器中存储为"inetOrgPerson".我想将xml文件附加到每个用户.

最好的方法是什么?标准LDAP模式是否提供存储文本文件的类?或者我是否应该根据我的需求扩展架构?

settings ldap

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