我正在尝试导入一个 dll,即 msado15.dll。我可以用这个解决方案很好地做到这一点;
#import <C:\\Program Files\\Common Files\\System\\ado\\msado15.dll> \
rename( "EOF", "AdoNSEOF" )
但我真的不能用这个分发任何东西。
我已经尝试通过注册表并为它找到了一个 libid,所以我正在尝试:
#import "libid:2DF8D04C-5BFA-101B-BDE5-00AA0044DE52" rename( "EOF", "AdoNSEOF" )
但是我得到了这些错误
1>Timestream.cpp(5): warning C4010: single-line comment contains line-continuation character 1>Timestream.cpp(6): warning C4278: 'RGB': identifier in type library '2DF8D04C-5BFA-101B-BDE5-00AA0044DE52' is already a macro; use the 'rename' qualifier 1>Timestream.cpp(6): warning C4278: 'RGB': identifier in type library '2DF8D04C-5BFA-101B-BDE5-00AA0044DE52' is already a macro; use the 'rename' qualifier 1>Timestream.cpp(6): warning C4278: 'RGB': identifier in type library '2DF8D04C-5BFA-101B-BDE5-00AA0044DE52' is already a macro; use the 'rename' qualifier 1>Timestream.cpp(6): warning C4278: 'RGB': identifier in type library '2DF8D04C-5BFA-101B-BDE5-00AA0044DE52' is already a macro; use the 'rename' qualifier 1>Timestream.cpp(6): warning C4278: 'RGB': identifier in type library '2DF8D04C-5BFA-101B-BDE5-00AA0044DE52' is already a macro; use the 'rename' qualifier 1>Timestream.cpp(6): warning C4278: 'RGB': identifier in type library '2DF8D04C-5BFA-101B-BDE5-00AA0044DE52' is already a macro; use the 'rename' qualifier
我如何让它发挥作用,这是最好的方法吗?我查看了有关 msado15.dll 的其他问题,但它们似乎在不同的问题上。
谢谢, 詹姆斯
最佳答案
#import "libid:2DF8D04C-5BFA-101B-BDE5-00AA0044DE52" rename( "EOF", "AdoNSEOF" )
那是一个类型库,但它是错误的。这解释了你得到的所有错误。启动 regedit.exe 并导航到 HKCR\TypeLib 并滚动到您要求的 libid。注意 2.0\0\win32 键是如何指向 MSO.DLL 的。那是一个 Office 类型库。
要找到正确的 GUID,请从 Visual Studio 命令提示符运行 OleView.exe。文件 + 查看 Typelib 并导航到 msado15.dll。您会在顶部看到所需的 guid,库部分的 uuid() 属性:
uuid(B691E011-1797-432E-907A-4D8C69339129)
因此:
#import "libid:B691E011-1797-432E-907A-4D8C69339129" rename( "EOF", "AdoNSEOF" )
请注意,这是一个非常古老的文件,您应该使用 msado28.tlb
关于c++ - 导入 msado15.dll,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11467446/
我的瘦服务器配置了nginx,我的ROR应用程序正在它们上运行。在我发布代码更新时运行thinrestart会给我的应用程序带来一些停机时间。我试图弄清楚如何优雅地重启正在运行的Thin实例,但找不到好的解决方案。有没有人能做到这一点? 最佳答案 #Restartjustthethinserverdescribedbythatconfigsudothin-C/etc/thin/mysite.ymlrestartNginx将继续运行并代理请求。如果您将Nginx设置为使用多个上游服务器,例如server{listen80;server
如何在ruby中调用C#dll? 最佳答案 我能想到几种可能性:为您的DLL编写(或找人编写)一个COM包装器,如果它还没有,则使用Ruby的WIN32OLE库来调用它;看看RubyCLR,其中一位作者是JohnLam,他继续在Microsoft从事IronRuby方面的工作。(估计不会再维护了,可能不支持.Net2.0以上的版本);正如其他地方已经提到的,看看使用IronRuby,如果这是您的技术选择。有一个主题是here.请注意,最后一篇文章实际上来自JohnLam(看起来像是2009年3月),他似乎很自在地断言RubyCL
如何检查Ruby文件是否是通过“require”或“load”导入的,而不是简单地从命令行执行的?例如:foo.rb的内容:puts"Hello"bar.rb的内容require'foo'输出:$./foo.rbHello$./bar.rbHello基本上,我想调用bar.rb以不执行puts调用。 最佳答案 将foo.rb改为:if__FILE__==$0puts"Hello"end检查__FILE__-当前ruby文件的名称-与$0-正在运行的脚本的名称。 关于ruby-检查是否
如何将send与+=一起使用?a=20;a.send"+=",10undefinedmethod`+='for20:Fixnuma=20;a+=10=>30 最佳答案 恐怕你不能。+=不是方法,而是语法糖。参见http://www.ruby-doc.org/docs/ProgrammingRuby/html/tut_expressions.html它说Incommonwithmanyotherlanguages,Rubyhasasyntacticshortcut:a=a+2maybewrittenasa+=2.你能做的最好的事情是:
我对如何计算通过{%assignvar=0%}赋值的变量加一完全感到困惑。这应该是最简单的任务。到目前为止,这是我尝试过的:{%assignamount=0%}{%forvariantinproduct.variants%}{%assignamount=amount+1%}{%endfor%}Amount:{{amount}}结果总是0。也许我忽略了一些明显的东西。也许有更好的方法。我想要存档的只是获取运行的迭代次数。 最佳答案 因为{{incrementamount}}将输出您的变量值并且不会影响{%assign%}定义的变量,我
我有一个数组数组,想将元素附加到子数组。+=做我想做的,但我想了解为什么push不做。我期望的行为(并与+=一起工作):b=Array.new(3,[])b[0]+=["apple"]b[1]+=["orange"]b[2]+=["frog"]b=>[["苹果"],["橙子"],["Frog"]]通过推送,我将推送的元素附加到每个子数组(为什么?):a=Array.new(3,[])a[0].push("apple")a[1].push("orange")a[2].push("frog")a=>[[“苹果”、“橙子”、“Frog”]、[“苹果”、“橙子”、“Frog”]、[“苹果”、“
有没有办法让Ruby能够做这样的事情?classPlane@moved=0@x=0defx+=(v)#thisiserror@x+=v@moved+=1enddefto_s"moved#{@moved}times,currentxis#{@x}"endendplane=Plane.newplane.x+=5plane.x+=10putsplane.to_s#moved2times,currentxis15 最佳答案 您不能在Ruby中覆盖复合赋值运算符。任务在内部处理。您应该覆盖+,而不是+=。plane.a+=b与plane.a=
出于某种原因,heroku尝试要求dm-sqlite-adapter,即使它应该在这里使用Postgres。请注意,这发生在我打开任何URL时-而不是在gitpush本身期间。我构建了一个默认的Facebook应用程序。gem文件:source:gemcuttergem"foreman"gem"sinatra"gem"mogli"gem"json"gem"httparty"gem"thin"gem"data_mapper"gem"heroku"group:productiondogem"pg"gem"dm-postgres-adapter"endgroup:development,:t
我正在尝试创建一个与compass一起使用的本地配置文件,这样我们就可以处理开发人员机器上的不同导入路径。到目前为止,我已经尝试将文件导入到异常block中,以防它不存在,然后进一步使用该变量:local_config.rbVENV_FOLDER='venv'config.rbVENV_FOLDER='.'beginrequire'local_config.rb'rescueLoadErrorendputsVENV_FOLDER通常我是一名Python开发人员,所以我希望导入将VENV_FOLDER的值更改为venv,但它仍然是。之后。有没有一种方法可以导入local_config.r
我是Ruby和这个网站的新手。下面两个函数是不同的,一个在函数外修改变量,一个不修改。defm1(x)x我想确保我理解正确-当调用m1时,对str的引用被复制并传递给将其视为x的函数。运算符当调用m2时,对str的引用被复制并传递给将其视为x的函数。运算符+创建一个新字符串,赋值x=x+"4"只是将x重定向到新字符串,而原始str变量保持不变。对吧?谢谢 最佳答案 String#+::str+other_str→new_strConcatenation—ReturnsanewStringcontainingother_strconc