在Windows Mobile 6上注册DLL

时间:2013-11-30 10:40:24

标签: c# dll compact-framework activex windows-mobile-6

我有一个DLL文件,其中包含一个ActiveX控件,我需要通过代码以编程方式注册它。这是我用来注册该DLL文件的代码,但它在调用Start方法时不断给我“系统找不到指定的文件”,而且我不知道为什么找不到regsvrce.exe,我应该更改当前目录什么的,请帮忙。

public static void registerDLL(string dllPath)
    {
        try
        {
            //'/s' : indicates regsvr32.exe to run silently.
            string fileinfo = "\"" + dllPath + "\"";

            Process reg = new Process();
            reg.StartInfo.FileName = "regsvrce.exe";
            reg.StartInfo.Arguments = fileinfo;
            reg.StartInfo.UseShellExecute = false;
            reg.Start();
            reg.WaitForExit();
            reg.Close();
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
        }
    }

1 个答案:

答案 0 :(得分:1)

Windows CE无法理解或支持相对路径。首先,你必须确保平台上存在regsvrce.exe(这不是一个给定的,事实上,存在它是非常常见的)你必须完全符合路径它:

reg.StartInfo.FileName = @"\Windows\regsvrce.exe";

如果它不存在(或者即使它存在),您可以轻松地执行regsvrce.exe所做的相同操作,即通过简单的P / Invoking DllRegisterServer来调用LoadLibrary直接调用该方法。