小编Bra*_*rad的帖子

VB6函数名中&符号的重要性?

我刚刚收到了一堆遗留的VB6(!)代码,我不断看到在名称末尾用符号声明的函数,例如Private Declare Function ShellExecute& . . ..

我一直无法找到对此重要性的答案,也无法检测到任何使用的模式或已经命名的函数的签名.

任何人都知道那些尾随的&符号对编译器意味着什么,或者至少是否有一些我缺少的约定?到目前为止,我将其作为一个奇怪的程序员写下来,但我想知道它背后是否有任何意义.

vb6 sigils

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

当SMPT服务器具有有效证书时,"根据验证过程"获取"远程证书无效"

这似乎是一个常见的错误,但是当我找到一个解决方法(见下文)时,我无法确定我首先得到它的原因.

我正在将SMTP功能写入我们的应用程序,并且我正在尝试将SSL功能添加到我们已有的工作SMTP中.

我正在测试使用我们公司的MS Exchange服务器,特别是在其上启用的webmail选项.我可以通过我的代码在内部发送电子邮件,不通过身份验证我的连接并匿名发送,但是由于我们公司的政策,这些电子邮件不会转发到外部电子邮件地址.除此之外,我正在为我们的客户编程,他们并不都允许开放中继和/或匿名连接.

我相信Exchange服务器正在使用显式SSL/TLS.我已经尝试telnet到端口25上的服务器地址并获得文本响应,人类可读的响应,根据我以前的一些搜索意味着它使用显式SSL/TLS.

我有以下测试代码

SmtpClient SMTPClient = new SmtpClient(webmailaddress);
SMTPClient.Port = 25;
SMTPClient.UseDefaultCredentials = true;
SMTPClient.EnableSsl = true;
System.Net.Mail.MailMessage Message = new `
System.Net.Mail.MailMessage(emailFrom,emailTo,subject,body);
SMTPClient.Send(Message);
Run Code Online (Sandbox Code Playgroud)

在我搜索解决方案期间,我遇到了"远程证书根据验证程序无效".使用Gmail SMTP服务器

从中我得到以下代码......

ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(ValidateServerCertificate);

public static bool ValidateServerCertificate(object sender,X509Certificate certificate,X509Chain chain,SslPolicyErrors sslPolicyErrors)
{
    if (sslPolicyErrors == SslPolicyErrors.None)
        return true;
    else
    {
        if (System.Windows.Forms.MessageBox.Show("The server certificate is not valid.\nAccept?", "Certificate Validation", System.Windows.Forms.MessageBoxButtons.YesNo, System.Windows.Forms.MessageBoxIcon.Question) == System.Windows.Forms.DialogResult.Yes)
            return true;
        else
            return false;
    }
}
Run Code Online (Sandbox Code Playgroud)

这适用于我的测试代码.然而,我正在编写的实际过程(而不是我的测试代码)将在后台运行,并且无法真正询问用户(而是报告Windows错误日志中的错误).

在我开始时,我的问题就是为什么我会收到这个错误.如果我在浏览器中访问https:webmail.ourdomain.co.uk,它会显示一个有效的证书,并且没有安装证书的选项(正如我自己签署的那样).

证书截图 然而,当我运行我的代码,并在ValidateServerCertificate方法调试中断Poing的,我看证书的价值观和看到我们的本地服务器的发行人"之前没有使用",且性能"后,不使用"今天.这与我得到的证书不符.

我还检查了ValidateServerCertificate调试中的sslPolicyErrors标志,它们显示"RemoteCertificateChainErrors"和"RemoteCertificateNameMismatch".

那么我对此缺少什么...为什么它没有使用正确的证书?如果我需要在本地安装证书才能使用它,那么我需要了解它们,这样我就可以告诉客户如果他们得到了这个,该怎么做.

我不想通过从ValidateServerCertificate方法返回true来绕过检查,并且因为它是后台进程我不能问用户,所以我需要了解如何让我的代码使用正确/可信证书.

希望有人可以提供建议.

c# email ssl client-certificates smtpclient

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

调试期间是否运行垃圾收集?

我有一个程序打开一个Excel COM对象,做一些东西,并关闭它.然后我想在文件关闭后移动它.如果我运行没有断点的程序,这可以正常工作.但是,如果我在尝试移动文件之前进入调试模式,我会得到一个IOException:"进程无法访问该文件,因为它正被另一个进程使用."

那是什么交易?当一个程序被允许以全速运行而不是在我踩过它时,垃圾收集是否表现更好?踩着我的代码做的不仅仅是非常缓慢地运行它吗?调试模式还有其他后果吗?遇到的其他错误只是因为我在调试而没有运行exe?

c# garbage-collection

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

为什么这个Using()给我一个错误?

我正在尝试打开一个(实际上有数百个)excel文件.我打开应用程序但想要在我打开的每个工作簿周围使用Using()功能.为什么会导致错误?

using (Excel.Workbook wbXL = appXL.Workbooks.Open(_sourceFullPath, Type.Missing, Excel.XlFileAccess.xlReadOnly))
{
    //stuff with wbXL
}
Run Code Online (Sandbox Code Playgroud)

使用获取红色下划线并说"'Microsoft.Office.Interop.excel.Workbook':在using语句中使用的类型必须可以隐式转换为'System.IDisposable'.

如何使这项工作?

c# excel interop using

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

"无法加载文件或程序集"错误.适用于我的电脑,但不适用于其他人

我有一个单一项目文件的解决方案.我正在部署为ClickOnce应用程序.这一切都运行良好,在我的计算机上,但当我尝试在别人的运行它时,我得到这个错误

System.IO.FileNotFoundException: Could not load file or assembly 'System.Windows.Forms.DataVisualization, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified. File name: 'System.Windows.Forms.DataVisualization, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'

System.Windows.Forms.DataVisualization 在我的项目中加载facet作为参考,我相信在使用它的地方是合适的使用语句.

当我转到我的项目属性>发布>应用程序文件... System.Windows.Forms.DataVisualization旁边有一个感叹号,工具提示文本"项目不再引用该项目.如果不再需要,可以通过右键单击该项目来删除它." 发布状态为"包含",哈希为"包含".但是,发布状态不是"包含(自动)"; Exclude旁边有自动文本.但无论我是包含还是排除,我在别人的机器上运行时都会遇到同样的错误.

您认为我应该怎样做才能正确引用此文件?

谢谢

更新:

我尝试过设置Local Copy = true,构建重建无济于事.

我现在正在审查所有其他建议.(在我和电脑之间走了很长一段路不行!)

c# visual-studio-2010 .net-3.5

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

文件不存在时BitmapImage抛出初始化异常

我有这样的 XAMl

<Image x:Name="MyImage">
    <Image.Source>
        <BitmapImage UriSource="{Binding FullPhotoPath}"   CacheOption="OnLoad" />
    </Image.Source>
</Image>
Run Code Online (Sandbox Code Playgroud)

只要 FullPhotoPath 存在,这就可以正常工作。如果没有,那么它会抛出异常

“System.Windows.Media.Imaging.BitmapImage”的初始化引发异常。

我意识到我可以只使用图像标签

要显示图像,如果它不存在,则不会显示任何内容(并且不会引发异常),但据我所知,此语法不允许我使用CacheOption.

如果图像路径不存在,如何不显示任何内容?

c# wpf

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

以下方法或属性(一个静态和一个非静态)之间的调用不明确

为什么我不允许使用具有相同签名的静态和非静态方法?

假设我有一个这样的课程

public class TestClass
{
    public object thing { get; set; }

    public TestClass()
    {

    }

    public TestClass(object thing)
    {
        this.thing = thing;
    }

    public static TestClass ConvertTestClass(object thing)
    {
        return new TestClass(thing);
    }

    public TestClass ConvertTestClass(object thing)
    {
        this.thing = thing;
        return this;
    }


}
Run Code Online (Sandbox Code Playgroud)

我试着像这样使用它

public class SomeOtherClass
{
    public SomeOtherClass()
    {
        TestClass tc = TestClass.ConvertTestClass(new object());

        TestClass tc2 = new TestClass();
        tc2.ConvertTestClass(new object());
    }
}
Run Code Online (Sandbox Code Playgroud)

我收到以下错误 TestClass.ConvertTestClass(new object());

以下方法或属性之间的调用是不明确的:'​​TestClass.ConvertTestClass(object)'和'TestClass.ConvertTestClass(object)'

和这些错误 tc2.ConvertTestClass(new object());

以下方法或属性之间的调用是不明确的:'​​TestClass.ConvertTestClass(object)'和'TestClass.ConvertTestClass(object)'

无法使用实例引用访问成员'TestClass.ConvertTestClass(object)'; 用类型名称来限定它

编译器真的不能告诉该方法的静态和非静态版本之间的区别,或者我在这里遗漏了什么? …

c#

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

从“在文件中查找”&gt;“文件类型”下拉列表中删除条目

我不想在“文件类型”下拉列表中看到这些条目。我怎样才能摆脱它们?

在此输入图像描述

它们似乎不再存储在注册表中

我希望它们消失,因为我经常使用滚轮在条目之间切换,它们可能会分散注意力。

visual-studio visual-studio-2019 visual-studio-2022

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

Properties.Settings不是我期望的价值

我在我的项目中有一个设置,当从代码引用时(即我将鼠标悬停在对象上,我可以看到该值),与Properties.Settings文件中的内容不同.这是一个旧的价值.我可以转到设置编辑器并将值更新为其他值,但旧值仍然存在.如果我使用.Properties.Settings.Default.Save()方法,则会更改设置,但是当我停止调试时,该更改不会反映在编辑器中.我可以在文本编辑器中打开Settings.settings文件,它会向我显示与VS中的设置编辑器中的内容相同的内容.我也可以在我的计算机上搜索其他的Settings.settings文件,只显示那些文件(其他文件显示但是它们显然不相关,修改了旧日期,并且没有相同的设置名称.)

这个文件在哪里,为什么价值与我认为的不同?

编辑:

我无法让我的原始设置变量再次同步,所以我使用设置GUI界面创建了一个新的设置变量.它似乎正在正常传播.每个人建议我查看的所有文件都有我希望我的设置变量的值,但是当我运行调试会话并查看相同的变量时,它是一些我无法追踪的旧值.

现在我回想起来,大约1.5个月前,我遇到了另一个变量的类似问题但我没有深入挖掘这个时间.我不得不做同样的事情.创建一个新的类似命名变量,删除旧变量并移动一个变量.

编辑2:

更改设置变量名称并让VS通过它自己的程序传播该更改似乎也是一种硬重启.

c# visual-studio-2010 settings.settings

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

使用多个左连接的MS Access SQL

以下连接适用于Access,但我需要添加第四个连接.

FROM ((Agents
LEFT JOIN Resignation_Pool    ON Agents.PF = Resignation_Pool.PF)
LEFT JOIN Teams               ON Agents.Team = Teams.ID)
LEFT JOIN Skills              ON Agents.PF = Skills.PF
Run Code Online (Sandbox Code Playgroud)

当我添加第四个连接时,它不起作用.我知道Access的括号很奇怪,但我认为我有它们所属的地方.查询只是永远不运行(它应该不会长时间运行),我最终取消它.有什么建议?

FROM (((Agents
LEFT JOIN Resignation_Pool    ON Agents.PF = Resignation_Pool.PF)
LEFT JOIN Teams               ON Agents.Team = Teams.ID)
LEFT JOIN Skills              ON Agents.PF = Skills.PF)
LEFT JOIN OneMore             ON Agents.OM = OneMore.OM
Run Code Online (Sandbox Code Playgroud)

这是有效的代码 - 我的实际查询而不是我发现的类似的查询.

SELECT DISTINCT A02.PID, A02.PS, A02.PN, A02.PM, C01.RC, C01.IC, C01.RD 
INTO AutoCR 
FROM ((02_CorrectResults A02 
LEFT OUTER JOIN dbo_pol_PGI C01 
  ON (A02.PID = …
Run Code Online (Sandbox Code Playgroud)

ms-access

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