问题列表 - 第16103页

从BPL函数返回一个字符串

有一个功能,简化如下,从BPL导出

function DoA(amount: currency; var Info: string): Currency; stdcall;
 begin
  result := amount * 19;
  Info:= 'Some Text about the result';
 end;
Run Code Online (Sandbox Code Playgroud)

它使用LoadPackage从主程序加载,GetProcAddress可以很好地用于其他功能.但是当它被调用时会出现许多错误;

BPL与(简化)一起使用

  bplhandle: HModule;
  BPLDoA: function (amount: currency; var Info: string): Currency; stdcall;
  intoStr : string;
Run Code Online (Sandbox Code Playgroud)

.

 begin
  bplhandle:=LoadPackage('test.bpl');
   if bplhandle <> 0 then
    begin
     @BPLDoA:=GetProcAddress(bplhandle,'DoA');
       if assigned(BPLDoA) then
       result := BPLDoA(123, intoStr);
    end;
 end;
Run Code Online (Sandbox Code Playgroud)

似乎在过程结束时发生的异常,但更正的文本返回到intoStr(以断点查看)

错误与Info param是var和/或字符串有什么关系吗?

错误消息是

项目Project1.exe引发了异常类EInvalidPointer,并显示消息"无效的指针操作"

谢谢

更多信息>来自同一个bpl/unit的另一个函数工作正常

function DoB(amount: currency): Currency; stdcall;
  result := amount * 19;
 end;
Run Code Online (Sandbox Code Playgroud)

疯狂除外>

exception class:EInvalidPointer异常消息:无效的指针操作.

主线程($ 1b7c):0040276f …

delphi bpl delphi-7

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

你如何组织你的NInject模块?

NInject的模块架构似乎很有用,但我担心它会变得有点混乱.

你如何组织你的模块?你把它们放在哪个组件中,你如何决定哪个模块的接线?

module ninject

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

解决错误的方法:"无法实例化抽象类"

我发现对我来说最耗时的编译器错误之一是"无法实例化抽象类",因为问题始终是我不打算让类是抽象的,编译器不会列出哪些函数是抽象的.必须有一种更聪明的方法来解决这些问题,而不是阅读标题10次,直到我最终注意到某个地方缺少"const".你是如何解决这些问题的?

c++ compiler-errors

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

输入是URL,如何保护它免受xss

我有一个表单文本字段,接受一个网址.提交表单时,我使用适当的反sql注入将此字段插入数据库.我的问题是关于xss.

此输入字段是一个网址,我需要在页面上再次显示它.如何在进入数据库的过程中保护它免受xss的影响(我认为没有必要,因为我已经处理了sql注入)并且在离开数据库的路上?

让我们假装我们这样,我正在简化它,请不要担心SQL注入.之后我会从哪里出发?

$url = $_POST['url'];
Run Code Online (Sandbox Code Playgroud)

谢谢

php security xss url

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

替换C#中的字符

我有一个要求.

我有一个可以包含任何字符的文本.

a)我必须只保留字母数字字符b)如果找到带有前缀或带有单词后缀的空格的单词"The",则需要将其删除.

例如

CASE 1:

 Input:  The Company Pvt Ltd. 

 Output: Company Pvt Ltd

But 

     Input:  TheCompany Pvt Ltd. 

     Output: TheCompany Pvt Ltd

because there is no space between The & Company words.

CASE 2:

Similarly, Input:  Company Pvt Ltd.  The 

     Output: Company Pvt Ltd

But Input:  Company Pvt Ltd.The 

     Output: Company Pvt Ltd

Case 3:

Input: Company@234 Pvt; Ltd.

Output: Company234 Pvt Ltd

No , or . or any other special characters.
Run Code Online (Sandbox Code Playgroud)

我基本上将数据设置为某些变量

 _company.ShortName = _company.CompanyName.ToUpper();
Run Code Online (Sandbox Code Playgroud)

因此,在保存时我无能为力.只有当我从数据库中获取数据时,我才需要应用此过滤器.数据来自_company.CompanyName …

replace character

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

创建Reddit/Digg/Hacker新闻克隆

我期待在内部我公司,让人们提交链接,投票在他们身上,并进行讨论推出像reddit的/ Digg的/黑客新闻网站.该功能集不需要比Hacker News更复杂.我正在寻找一个可以做到这一点并满足以下要求的现有平台:

  1. 如果它是开源的,它应该是许可的许可证(例如BSD)
  2. 在Windows Server上运行(我们是Microsoft商店)
  3. 易于部署/维护

这样的工具存在吗?Reddit是开源的,但在病毒CPAL下获得许可.为Hacker News提供支持的News.arc似乎拥有更合适的许可证(Perl Artistic License),但它是用神秘的Arc语言编写的,它引用了第2和第3个问题.

social-networking

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

如何在Linux下为socket生成随机文件名?

我想制作一个使用本地命名空间套接字的小程序,我需要使用临时文件名作为套接字的地址.

那么如何在Linux下生成随机文件名呢?

+我在Debian Linux下使用C编程语言.
+根据GNU C库参考,tmpname是不安全的.但安全的tmpfile和mkstemp 创建打开生成的文件.这里有任何安全非创建 - 打开.换句话说,该函数应禁止任何其他请求在特定目录下创建生成的文件名.

谢谢.

c sockets linux random

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

验证jquery中的数字文本字段

我在jquery中有这个代码,以防止非数字字符输入到文本字段

$("#NumericField").numeric();
Run Code Online (Sandbox Code Playgroud)

现在,在文本字段中我无法输入非数字字符.那没问题.这里的问题是用户是否会使用非数字字符粘贴文本字段.

如果值是非数字的,是否有一种方法/方法来禁用粘贴?或者有没有其他方法可以处理这种情况,你可以分享?

asp.net-mvc jquery

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

在没有子类化页面的情况下全局覆盖Page_PreInit()?

我想有些我看到了一个关于此的例子但是找不到它了:

有没有办法在全局基础上覆盖Page_Init()事件而不创建从Page继承的新MyCustomPage类?

我希望有一些方法可以在没有子类化页面的情况下对页面进行全局覆盖(不需要从子类继承我的页面).我正在考虑关于Global.asax的一些内容,但是对于Page.

这是我希望在每个页面中在PreInit上运行的代码:

' Change Culture's ShortDate to "dd/mmm/yyyy" for es-MX.
If CultureInfo.CurrentCulture.Name = "es-MX" Then
    Dim info As CultureInfo = CultureInfo.CurrentCulture.Clone
    info.DateTimeFormat.ShortDatePattern = "dd/MMM/yyyy"
    System.Threading.Thread.CurrentThread.CurrentCulture = info
    info = Nothing
End If

在此先感谢您的时间.

编辑:

截至今天,已有2个完美的解决方案(针对我的情况)在下面提供.我已选择其中一个作为已接受的答案,即使我将使用其他解决方案.这是因为我将使用的是@Simon对此问题的评论.

解决方案是将我的代码放在Global.asax中:

Sub Application_BeginRequest(ByVal sender As Object, ByVal e As EventArgs)

    ' Configure ShortDatePattern as "dd/MMM/yyyy" for es-MX to avoid month-day confusions when both are numeric.
    If CultureInfo.CurrentCulture.Name = "es-MX" Then
        Dim oCultureInfo As CultureInfo = CultureInfo.CurrentCulture.Clone
        oCultureInfo.DateTimeFormat.ShortDatePattern = "dd/MMM/yyyy"
        System.Threading.Thread.CurrentThread.CurrentCulture = oCultureInfo
        oCultureInfo …

asp.net overriding

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

如何处理const对象中非const引用成员的初始化?

假设你有一堂课

    class C 
    {
      int * i;

      public:

         C(int * v):i(v) {};

         void method() const;  //this method does not change i
         void method();        //this method changes i
    }
Run Code Online (Sandbox Code Playgroud)

现在您可能想要定义此类的const实例

    const int * k = whatever;
    const C c1(k); //this will fail
Run Code Online (Sandbox Code Playgroud)

但是这会因为非const int C的构造函数C(int*v)而失败

所以你定义了一个const int构造函数

    C(const int * v):i(v) {}; //this will fail also
Run Code Online (Sandbox Code Playgroud)

但是这也会失败,因为C的成员"int*i"是非const的.

在这种情况下该怎么办?使用可变吗?铸件?准备const版本的课程?

编辑:经过与Pavel的讨论(下图),我对此问题进行了一些调查.对我来说,C++的作用并不正确.指针目标应该是严格类型,这意味着您不能执行以下操作:

int i;
const int * ptr;
ptr = & i;
Run Code Online (Sandbox Code Playgroud)

在这种情况下,语言语法将const承诺不改变指针的目标.另外int * const ptr是承诺不改变指针值本身.因此,您有两个可以应用const的地方.那么你可能希望你的类为指针建模(为什么不).在这里,事情正在崩溃.C++语法提供了const方法,它们能够保证不会自己更改字段的值,但是没有语法指出你的方法不会改变你的类指针的目标.

解决方法是定义两个类const_C,C …

c++ constructor const-correctness

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