问题列表 - 第25004页

在Freepascal编译的DLL和Delphi编译的EXE之间交换字符串(PChar)

经过大量的实验,我找到了一种方法,用FreePascal编译的DLL与Delphi编译的EXE交换PChar.我负责DLL和EXE源代码,但一个必须在FreePascal中,另一个在Delphi中.我的解决方案涉及DLL中的以下方法:

function GetAString(): PChar;
var aString: string;
begin
  aString := 'My String';
  result := StrAlloc(length(aString) + 1);
  StrPCopy(result, aString); 
end;

procedure FreeString(aString: PChar);
begin
  StrDispose(aString); 
end;
Run Code Online (Sandbox Code Playgroud)

从Delphi EXE中,要调用GetAString方法,我需要调用GetAString方法,将PChar保存到实际的Delphi String并调用FreeString方法.

这是从FreePascal DLL与Delphi EXE交换字符串的最佳方法吗?我可以避免从Delphi调用FreeString吗?

最后,如果这是正确的解决方案,默认情况下它将如何使用Delphi 2010和WideString:我是否还需要在FreePascal中强制使用WidePChar?

delphi string dll pascal freepascal

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

在Unix上将C++ std :: clog重定向到syslog

我在Unix上使用C++程序,将消息发送到syslog.

当前代码使用与printf类似的syslog系统调用.

现在我宁愿为此目的使用流,通常是内置的std :: clog.但是clog只是将输出重定向到stderr,而不是syslog,这对我来说没用,因为我还将stderr和stdout用于其他目的.

我在另一个答案 中看到,使用rdbuf()将它重定向到一个文件很容易,但我看不到应用该方法来调用syslog,因为openlog没有返回一个文件处理程序我可以用来绑定它的流.

有没有其他方法可以做到这一点?(看起来非常基本的unix编程)?

编辑:我正在寻找一个不使用外部库的解决方案.@Chris提出的建议可能是一个良好的开端,但仍然有点模糊,无法成为公认的答案.

编辑:使用Boost.IOStreams是好的,因为我的项目已经使用了Boost.

可以与外部库链接,但也是一个关注点,因为它是GPL代码.依赖性也是一种负担,因为它们可能与其他组件冲突,在我的Linux发行版上不可用,引入第三方错误等.如果这是唯一的解决方案,我可以考虑完全避免流......(遗憾).

c++ syslog stream clog

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

有免费的OCaml到C翻译吗?

所以我有很好的OCaml代码(50000行).我想把它移植到C.那么有没有免费的OCaml到C翻译器?

c c++ ocaml

11
推荐指数
4
解决办法
5984
查看次数

是否可以解密和查看ViewState值?

我知道有一些工具可以让你看到asp.net viewstate的内容.如果通过将<machineKey ... />节点添加到web.config来加密viewState,是否可以查看和修改viewState的内容?

asp.net security viewstate

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

如何使用TestNG测试expectedExceptionsMessageRegExp(异常消息)?

我正在使用注释expectedExceptionsMessageRegExp上的propery @Test来测试异常消息,但它没有正确执行.请参阅下面的代码.

单元测试代码:

@Test (dependsOnMethods = "test1", expectedExceptions = IllegalArgumentException.class, expectedExceptionsMessageRegExp = "incorrect argument")
public void testConverter()
{
    try
    {
        currencyConverter  = Converter.convert(val1,val2)
    }
    catch (MYException e)
    {
        e.printStackTrace();
    }
}
Run Code Online (Sandbox Code Playgroud)

申请代码:

if (val1 == null || val1.length() == 0)
{
    throw new IllegalArgumentException("Val1 is incorrect");
}
Run Code Online (Sandbox Code Playgroud)

单元测试代码应检查异常消息,如果消息彼此不匹配,则测试应该失败.

目前这还没有发生.难道我做错了什么?

java testing testng unit-testing

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

MySQL全文搜索innoDB表的解决方法

我正在设计一个使用MySQL作为后端数据库的内部Web应用程序.数据的完整性至关重要,因此我将innoDB引擎用于其外键约束功能.

我想对一种类型的记录进行全文搜索,而innoDB表本身不支持这种记录.MyISAM由于缺少外键支持,我不愿意转移到表,因为它们的锁是每个表,而不是每行.

使用MyISAM引擎创建我需要搜索的记录的镜像表并将其用于全文搜索是不是不好的做法?这样我只是在搜索数据的副本,如果这些数据发生任何变化,那么它就没那么大了,因为它总是可以重新创建.

或者这是一种应该避免的尴尬方式吗?

谢谢.

mysql search myisam innodb full-text-search

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

通过英国邮政编码将多个图钉添加到Google地图

我的Google搜索技能今天让我失望了.我可以使用英国邮政编码将一个图钉添加到Google地图中.但我找不到如何从100个邮政编码的选择中添加多个引脚.

所有的帮助都得到了帮助!

google-maps

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

php代码中的Mysql错误

无法理解mysql错误:

UPDATE static_pages SET order ="一些新数据222222

"数据库错误:您的SQL语法中有错误;请查看与您的MySQL服务器版本对应的手册,以便在'order ='附近使用正确的语法

$query = 'UPDATE someTable SET '.$key.' = "'.$value.'"';
Run Code Online (Sandbox Code Playgroud)

这是$ key = order; $ value ='新数据222222'; 表中有这样的键:订单,价格,联系方式.除"订单"外,其中每个都更新.为什么?

php mysql

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

jQuery datepicker mindate,maxdate

我有以下两个datepicker对象,但由于我遇到了minDate和maxDate选项,我无法得到我想要的东西:

这是为了将日期限制在将来的日期.

我想要的:将日期从当前日期限制为30年.

我得到的:将日期从当前日期限制为10年.

$(".datepickerFuture").datepicker({
    showOn: "button",
    buttonImage: 'calendar.gif',
    buttonText: 'Click to select a date',
    duration:"fast",
    changeMonth: true,
    changeYear: true,
    dateFormat: 'dd/mm/yy',
    constrainInput: true,
    minDate: 0,
    maxDate: '+30Y',    
        buttonImageOnly: true
    });
Run Code Online (Sandbox Code Playgroud)

这是为了限制只选择过去的日期:

我想要的:将日期从当前日期限制为120年前的时间.

我得到的:将日期从当前日期限制为120年前的时间,但是当我选择一年时,最大年份将重置为选定的年份(例如,当新鲜的页面加载为1890-2010时,我会得到什么,但如果我选择2000年当年选择框重置为1880-2000).

$(".datepickerPast").datepicker({
    showOn: "button",
   buttonImage: 'calendar.gif',
    buttonText: 'Click to select a date',
    duration:"fast",
    changeMonth: true,
    changeYear: true,
    dateFormat: 'dd/mm/yy',
    constrainInput: true,
    yearRange: '-120:0',
    maxDate: 0,
    buttonImageOnly: true
});
Run Code Online (Sandbox Code Playgroud)

我需要有关datepicker对象的帮助,非常感谢任何帮助.

jquery calendar mindate maxdate

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

压缩php数组

我需要一个看起来像......的数组

array( 11 => "fistVal", 19 => "secondVal", 120=> "thirdVal", 200 =>"fourthVal");
Run Code Online (Sandbox Code Playgroud)

并将其转换为......

array( 0 => "fistVal", 1 => "secondVal", 2=> "thirdVal", 3 =>"fourthVal");
Run Code Online (Sandbox Code Playgroud)

这就是我提出的 -

function compressArray($array){
    if(count($array){
        $counter = 0;
        $compressedArray = array();
        foreach($array as $cur){
            $compressedArray[$count] = $cur;
            $count++;   
        }
        return $compressedArray;
    } else {
        return false;
    }
}
Run Code Online (Sandbox Code Playgroud)

我只是好奇是否有任何内置功能在PHP或巧妙的技巧来做到这一点.

php arrays

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