Принуждение символа экспортирует с MSVC

Объединить с предложением where для меня:

merge into table1
using table2
on (table1.id = table2.id)
when matched then update set table1.startdate = table2.start_date
where table1.startdate > table2.start_date;

Вам нужно предложение WHERE, потому что столбцы, на которые ссылается в предложении ON, не могут быть обновлены.

7
задан torque 15 January 2009 в 18:29
поделиться

3 ответа

Вы, вероятно, хотите посмотреть на __ declspec (экспорт/импорт)

#ifdef DLL_EXPORTING
#define WHDLL __declspec(dllexport)
#else
#define WHDLL __declspec(dllimport)
#endif

При соединении статического модуля в dll, это только введет код, который используется. Я никогда не импортировал материал от статического lib до просто ре, экспортируют его.
, Возможно, просто необходимо отметить его как экспортный в dll при компиляции статического lib.

, Но это напоминает мне о помещении контейнеров станд. в экспортируемые классы и использование некоторого обмана в msvc экспортировать 'экземпляр' специализированного контейнера. шаблон кода подобен Вашему статическому коду (в моих взглядах)

, например, без шаблона, Вы получаете предупреждения, шаблон кода не экспортируется для поддержки класса - это - MSVC, конкретный от моего понимания

template class DLL_EXPORTING std::auto_ptr<wxCursor>;
class DLL_EXPORTING imageButton : public wxWindow
{
    std::auto_ptr<wxCursor> m_Cursor;
};
3
ответ дан 6 December 2019 в 23:14
поделиться

/ ВКЛЮЧАЮТ , директива может использоваться, чтобы вынудить компоновщика MSVC включать символ. С другой стороны /OPT:NOREF может использоваться для отключения удаления неиспользованных символов в целом.

общий подход А должен создать единственную неиспользованную функцию, которую ссылки все объекты экспортировали для Ваших плагинов. Тогда Вам только нужен единственный/, ВКЛЮЧАЮТ директиву для той функции.

3
ответ дан 6 December 2019 в 23:14
поделиться

Что я испытал для решения, это было этим:

  1. создают статическую библиотеку с функцией void afunction( int ).
  2. создают dll, связанный со статическим lib, экспортируя afunction.
  3. создают exe, с помощью afunction символ.

, Как? Так как компоновщику можно сказать экспортировать функции с помощью __declspec(dllexport) директива, dll должен не больше, чем объявить экспортируемый будущим образом символ таким образом.

lib имеет заголовок "afunction.h" и сопровождение cpp файл, содержащий тело функции:

// stat/afunction.h
namespace static_lib { void afunction(int); }


// stat/afunction.cpp
#include "afunction.h"
namespace static_lib { void afunction(int){ } }

dll имеет включать файл "indirect.h", содержа объявление функции, которая будет экспортироваться. dll имеет разовую ссылкой зависимость к статическому lib. (Опции компоновщика: Входные Зависимости / Дополнительные Зависимости: "static_library.lib")

// dll/indirect.h
namespace static_lib {
  __declspec( dllexport ) void afunction(int);
}

исполняемый файл имеет только косвенно включенный файл:

#include <dll/indirect.h>
int main() { static_lib::afunction(1); }

И предполагают что? Это компилирует, ссылки и даже работает!

2
ответ дан 6 December 2019 в 23:14
поделиться
Другие вопросы по тегам:

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