问题列表 - 第14314页

Haskell编译问题

编译Haskell程序时遇到问题,导入Text.Regex.Posix模块.我试图在一个小测试程序中隔离问题:

module Main () where

import Text.Regex.Posix ((=~))

main = return ()
Run Code Online (Sandbox Code Playgroud)

运行解释器工作正常:

/regex-test$ runghc Main.hs
/regex-test$ 
Run Code Online (Sandbox Code Playgroud)

但是,用ghc编译这个程序会产生:

/regex-test$ ghc -o tester Main.hs
Main.o: In function `rmS_info':
(.text+0xf3): undefined reference to `__stginit_regexzmposixzm0zi72zi0zi3_TextziRegexziPosix_'
collect2: ld returned 1 exit status
Run Code Online (Sandbox Code Playgroud)

在此之后,解释器也停止工作:

/regex-test$ runghc Main.hs

<interactive>:1:32: Not in scope: `main'
/projects/regex-test$ 
Run Code Online (Sandbox Code Playgroud)

通过再次保存文件而不进行任何更改,我可以再次使用它.

有谁知道如何解决这个问题?

有关我系统的一些信息:

/regex-test$ uname -a
Linux Hello-Ubuntu 2.6.28-15-generic #52-Ubuntu SMP Wed Sep 9 10:49:34 UTC 2009 i686 GNU/Linux
Run Code Online (Sandbox Code Playgroud)

/regex-test$ ghc-pkg list
/usr/local/lib/ghc-6.10.3/./package.conf:
Cabal-1.6.0.3, HUnit-1.2.0.3, QuickCheck-1.2.0.0, array-0.2.0.0,
base-3.0.3.1, base-4.1.0.0, bytestring-0.9.1.4, containers-0.2.0.1, …
Run Code Online (Sandbox Code Playgroud)

regex haskell compilation

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

如何在VB.NET中安装并在Automation Servers列表中注册的用于Excel的COM Server for Excel?

版本

Excel 2007,Windows Vista,VB.NET,带有.NET 3.5 sp2的Visual Studio 2008,MSI安装程序包.

我想做什么

我有一个用VB.NET编写的Excel UDF.它作为COM服务器公开,因为您无法直接在.NET语言中创建Excel UDF.安装是一个真正的痛苦,因为没有任何安装设置似乎正确; 它们都没有为您提供一个安装包,它将COM服务器放在客户端计算机上,注册了服务器,注册了类型库,并且组件在Excel 2007的自动化服务器列表中可见.

我试过的

以下是类型库的安装设置,它们的缺陷在编译时和安装时显而易见:

vsdrfComSelfReg

  • 在编译安装项目期间没有警告
  • 模块xxx.tlb无法注册.HRESULT -2147024703
  • 组件的ProgID和GUID在注册表中设置,但该组件未出现在自动化服务器列表中

vsdrfDoNotregister

  • 编译期间没有警告
  • 安装工作,但TLB当然没有注册

vsdrfCOM

  • 编译时警告:警告:无法为名为"xxx.tlb"的文件创建注册信息
  • 安装期间未注册类型库

正确的设置应该是vsdrfCOM,如解释在这里:

问:任何人都可以告诉vsdrfCOM在Visual Studio的安装项目中的含义吗?当我在安装项目中添加文件的属性中检查属性"注册"时,它可用.

答:这意味着Visual Studio将在构建时提取COM注册数据并将其放入MSI文件(主要是MSI文件的注册表表,但也包括类表).因此,当您安装它时,您的代码不需要自行注册,因为文件被复制到磁盘并创建了注册表项.它还将通过向MSI的TypeLib表添加条目来创建类型库注册.

许多困难似乎都是针对Vista的.特别是,使用REGCAP实用程序.TLB文件生成.REG文件在Vista中不起作用.如果不是这样,也许这个建议会很有用.相反,它生成空的.REG文件.

我已经尝试了StackOverflow帖子中的所有建议.该帖子对技术问题有很好的描述:

"引用"对话框中的条目来自HKCR\TypeLib注册表项,而不是来自HKCR\CLSID.如果您的程序集没有显示在"引用"对话框中,但已编译的DLL仍然可以使用您的COM程序集,则表示已为程序集正确注册了类和接口,但类型库本身没有.

这个问题

任何人都知道如何使安装注册组件和类型库?我无法访问Windows XP计算机.


详细说明为什么这很糟糕

任何编译的代码都不需要.TLB来调用它.我没有像你一样尝试部署Excel自动化加载项,但我的猜测是UDF应该加载并运行得很好.

它在Excel中不太像.

  • 用户打开工作表并尝试引用UDF.找不到它,因为未加载DLL.失败
  • 用户转到"主页"|"Excel选项"|"加载项"|"Excel加载项+转到",并且"加载项"对话框中未列出COM服务器.失败
  • 然后,用户按下自动化服务器以获取可用自动化服务器的列表.DLL不在那里.失败
  • 用户返回"加载项"对话框并选择"浏览",导航到安装目录,然后选择DLL("XXX不是有效的加载项")或类型库("您选择的文件不包含新的Automation Server,或者您没有足够的权限......").失败

据我所知,用户必须从命令行运行regasm.exe才能使Excel UDF/COM服务器可用.如何告诉人们从命令行运行regasm以安装Excel的加载项?


编辑2009-10-04

Mike的评论和指示非常棒.我不知道的关键是安装程序有一个内置的注册表编辑器,用于添加注册表项.哦,Microsoft安装程序没有调用带有属性ComRegisterFunctionAttribute安装函数.我已经从他引用的来源获得了关于编写安装程序功能的指示.

.net com excel installation

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

如何在ActionScript中暂停执行

有没有办法在ActionScript中暂停执行,比如sleep()方法?

我知道有一个setTimeout()方法,但是setTimeout()只是为延迟执行设置了一个事件.

apache-flex actionscript flex3 actionscript-3

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

C#方法做URL编码?

我可以用什么c#类方法对URL字符串进行URL编码?

在我的用例中,我想将URL字符串作为URL参数本身传递.就像在网址中埋设URL一样.没有一些编码"&"和"?" 处理外部Url参数的参数时,可以拾取内部URL中的字符

谢谢

c# encoding http character-encoding

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

如何安排用SQLAlchemy和图形界面制作的应用程序的源代码?

我正在使用SQLAlchemy和wxPython开发一个应用程序,我试图将其分布在由业务逻辑,ORM和GUI组成的独立模块中.

我不完全确定如何以pythonic的方式做到这一点.

鉴于mapping()必须在其他地方调用以供使用的对象,我想把它放在__init__.py业务逻辑上,但将所有表定义保存在一个单独的orm.py模块中.

我应该保留以下内容:

/Business
    /__init__.py
    |    mapping (module1.Class1, orm.table1)
    |
    /module1.py
         Class1

/orm.py
     import
     table1 = Table()
/GUI
    /main.py
    |    import business
    /crud.py
Run Code Online (Sandbox Code Playgroud)

或类似的东西

/Business
    /__init__.py
    |    import
    |
    /module1.py
         Class1
         table1 = Table()
         mapping (module1.Class1, orm.table1)

/GUI
    /main.py
    |    import business
    /crud.py
Run Code Online (Sandbox Code Playgroud)

是第一种推荐的方法吗?还有其他选择吗?我已经看到了第二种方式,但我不喜欢将数据库处理代码和业务逻辑代码放在同一个模块中.我是否在思考它?真的不是那么大的问题吗?

python version-control sqlalchemy directory-structure

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

获得明天约会的最干净,最恐怖的方式?

获得明天约会的最干净,最恐怖的方式是什么?必须有一个更好的方法,而不是在一天中添加一个,在月末处理天数等.

python time datetime date

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

为什么cron产生的进程最终不存在?

我有一些进程显示<defunct>top(和ps)中.我从真实的脚本和程序中榨取了一些东西.

在我的crontab:

* * * * * /tmp/launcher.sh /tmp/tester.sh
Run Code Online (Sandbox Code Playgroud)

的内容launcher.sh(这是当然的标记为可执行):

#!/bin/bash
# the real script does a little argument processing here
"$@"
Run Code Online (Sandbox Code Playgroud)

的内容tester.sh(这是当然的标记为可执行):

#!/bin/bash
sleep 27 & # the real script launches a compiled C program in the background
Run Code Online (Sandbox Code Playgroud)

ps 显示以下内容:

user       24257 24256  0 18:32 ?        00:00:00 [launcher.sh] <defunct>
user       24259     1  0 18:32 ?        00:00:00 sleep 27
Run Code Online (Sandbox Code Playgroud)

请注意,tester.sh它不会出现 - 它在启动后台作业后退出.

为什么要launcher.sh坚持,标记<defunct> …

bash cron background zombie-process defunct

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

从全名获取简短的用户名

任何人都知道如何获得用户的简短用户名,例如."johnsmith",全名,例如."约翰·史密斯"?

注意我对任何用户感兴趣,而不是当前用户,因此像NSUserName这样的函数是无关紧要的.

为什么?我正在使用授权服务验证用户名和密码.这允许人们输入他们的短名称或全名,这很好,但我需要知道他们实际登录的是谁(即短用户名和/或用户ID).

像[NSHomeDirectoryForUser(用户名)lastPathComponent]这样令人厌恶的黑客不能始终如一地工作.

macos cocoa

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

数据库查询应该在哪里?

查询应该存在于需要数据的类中吗?查询应该存在于数据库中的存储过程中,以便它们可以重用吗?

在第一种情况下,更改查询不会影响其他人(其他代码或生成报告的人员等).在第二种情况下,查询可以被许多人重复使用,并且只存在于一个地方,但是如果有人破坏了这些查询,那么它们就会被所有人破坏.

sql database stored-procedures

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

将10.6项目调试到10.5?

我可以将10.6项目调试到10.5吗?我在学校的计算机仍然是10.5,我需要降级它,以便我可以在他们的计算机上运行我的程序.

谢谢,,

凯文

debugging xcode cocoa objective-c

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