Definição de funções de C++ in-line com o dllexport, dllimport
Específicos do Microsoft
Você pode definir como inline uma função com o dllexport atributo.Nesse caso, a função é sempre instanciada e exportada, independentemente de serem ou não a função faz referência a qualquer módulo no programa.A função é provável a ser importado por outro programa.
Você também pode definir como inline uma função declarada com o dllimport atributo.Nesse caso, a função pode ser expandida (sujeito às especificações de /Ob), mas nunca é instanciada.Em particular, se o endereço de uma função in-line importado for retirado, o endereço da função que residem na DLL será retornado.Esse comportamento é o mesmo pegar o endereço de um não-inline importados a função.
Essas regras se aplicam a funções embutidas, cujas definições aparecem dentro de uma definição de classe.Além disso, dados de local estáticos e seqüências em funções embutidas mantenham as mesmas identidades entre o cliente e a DLL como fariam em um único programa (ou seja, um arquivo executável sem uma interface DLL).
Tenha cuidado ao fornecer funções embutidas importados.Por exemplo, se você atualizar a DLL, não assuma que o cliente usará a versão alterada da DLL.Para garantir que você está carregando a versão correta da DLL, reconstrua também a cliente da DLL.