Не удалось найти точку входа под названием 'TaskDialogIndirect' в DLL 'ComCtl32'

Благодаря. Я добавил еще один столбец IDENTITY 'x' во временную таблицу, после чего получил следующее:

DECLARE @tempVal varchar(255), @intMin INT, @intMax INT, @tempAlphaVal varchar(15)

-- Assigning the first value in the dataset -- starting the loop
SET @intMin = (SELECT MIN(x) FROM #Temp_CSV_Import)

-- Assigning the last value in the dataset -- stoping the loop
SET @intMax = (SELECT Max(x) FROM #Temp_CSV_Import)

-- adding another column to the table
ALTER TABLE #Temp_CSV_Import ADD alpha varchar(15);

WHILE (@intMin <= @intMax)
BEGIN   
    -- find the value of column a in row @intMin
    SET @tempVal = (SELECT a FROM #Temp_CSV_Import WHERE x = @intMin)   

    -- check to see if the value has alpha  
    IF(@tempVal LIKE '%alpha%') 
        BEGIN           
            -- parse the string to get the number -- until the next alpha use this number
            SET @tempAlphaVal = (SELECT SUBSTRING(@tempVal, CHARINDEX(' ', @tempVal) +1, 20))           
        END
    ELSE
        BEGIN   
            -- update apha with the temp value in @tempAlphaVal     
            UPDATE #Temp_CSV_Import SET alpha = @tempAlphaVal WHERE x = @intMin
        END

    -- increment @intMin
    SET @intMin = @intMin + 1                   
END

-- lastly delete the alpha row since we do not need it anymore.
DELETE FROM #Temp_CSV_Import WHERE alpha is null

SELECT * FROM #Temp_CSV_Import
5
задан Judah Gabriel Himango 5 April 2009 в 16:29
поделиться

3 ответа

У меня были проблемы с этим и с бесплатным XTaskDialog API Naughter , чтобы получить механизм отката на машинах Windows XP через эмуляцию, что сделало эту реализацию диалогового окна намного более полезной. :)

В моем случае это была проблема контекста активации, как упоминалось в этой записи в блоге .

Или, цитируется здесь, на случай, если сообщение в блоге когда-нибудь потеряно в киберпространстве (применимо к Visual Studio):

  1. Откройте свойства проекта в обозревателе решений,
  2. На вкладке «Безопасность» установите флажок «Включить параметры безопасности ClickOnce»,
  3. . Теперь вы можете увидеть появление файла app.manifest в папке «Свойства» вашего решения. , откройте его,
  4. Под тегом вставьте приведенный ниже код.
  5. Если вы попытаетесь построить, может возникнуть ошибка. Чтобы исправить это, снимите флажок Включить параметры безопасности ClickOnce.

Код для вставки на шаге 4:

<dependency>
  <dependentAssembly>
    <assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" 
        version="6.0.0.0" processorArchitecture="*"
        publicKeyToken="6595b64144ccf1df" language="*" />
  </dependentAssembly>
</dependency>
8
ответ дан 13 December 2019 в 19:36
поделиться

Я предложил бы сравнить версию comctl32.dll на работе и нерабочих машинах Vista - и сравнение их контрольных сумм, даже если они сообщают о той же версии.

Другие вещи проверить:

  • Действительно ли возможно, что нерабочая машина имеет предварительную версию Vista?
  • Действительно ли возможно, что версия не-Vista comctl32.dll была скопирована на машину и берется приложением? (Утилита Depends, которая идет с Visual Studio, может помочь здесь.)
  • Действительно ли возможно, что вирус или червь (или что не) заменили comctl32.dll?

Могло бы также стоить прочитать эту статью о контекстах активации.

1
ответ дан 13 December 2019 в 19:36
поделиться

Если другие машины, Вы раньше запускали программу, использовали Vista x86, вероятно, что существует PInvoke в Вашем коде, это вызывает проблему. Можно хотеть попытаться установить целевую архитектуру компилятора на x86, чтобы вынудить программу работать в WoW64 на x64 Vista. По умолчанию Visual Studio использует настройки, создающие блоки агностическими архитектурой способами. Это означает, что, когда Вы пытаетесь запустить программу.NET в системе на 64 бита, она должна быть выполнена размещенная собственной x64 версией CLR. Attemptiong для загрузки DLL на 32 бита в том контексте перестанет работать. Принуждение приложения работать в эмулированном x86 режиме, вместо этого, должно добиться цели.

1
ответ дан 13 December 2019 в 19:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: